A.1.2.2 Full NIC Driver Objects
Typically the NIC driver uses a software object called a logical adapter to represent each network interface card that it controls. The logical adapter name corresponds to a Windows NT device object that the Windows NT I/O subsystem manages. The logical adapter contains information about an associated network interface card, such as name, network address, and NIC base address. It also contains data about the current state of the driver in relation to the hardware, such as number of bindings, binding handles, filter database, and logical adapter references. Additionally, the logical adapter keeps track of buffer resources used for sending and receiving data. It implements a queue for receiving data. For sending data, the logical adapter allows the NIC driver to handle data packets in one or more queues.
The NIC driver maintains a MIB, a set of objects that represent information about its capabilities and current status. The MIB identifies a managed object by a 32-bit OID. To query information in the MIB, a transport driver passes the OID and an array large enough to hold the returned data to the NIC driver. If the transport driver does not provide a large enough array for the information, the NIC driver writes the number of bytes needed for the data in the NDIS_REQUEST structure, along with the status code NDIS_STATUS_INVALID_LENGTH. For more information about this status code, see the Network Driver Reference.