My understanding is that an Ethernet NIC 'knows' its MAC address. When packets arrive on the wire, the NIC checks to see if the destination MAC matches its MAC, and if so, forwards the packet up the network stack. This alleviates the operating system of having to examine each and every packet that arrives on the wire.
I'd like to know which OS driver functions support this. I've been looking at the NDIS 5.1 reference, and have found this: http://msdn.microsoft.com/en-us/library/windows/hardware/ff557131%28v=vs.85%29.aspx and I think I'm close, but haven't hit the jackpot yet.
I'm preparing class materials and I want to tell my class that the NIC knows its MAC address, but don't want to teach that unless I can verify to myself that it's true. Seeing the OS driver functions that support this would satisfy my doubt.
I appreciate any help (and comment) the community could provide.
Drivers are the wrong place to look for this information, since addressing is (generally) handled by the card before the driver even gets involved. Check the wikipedia article on MAC addresses:
Drivers might support fetching the NIC's address, and in some cases changing it (overriding the factory-defined address), but for the most part drivers will just leave the MAC layer up to the NIC.