A.4.1.3 Memory Mapping for Physical Addresses

Memory mapping allows the NDIS interface library to associate the virtual address of a buffer with the addresses of the physical segments that make up the buffer. At initialization, your NIC driver must specify the number of map registers needed and, for each mapping, the map register for NdisRegisterAdapter to use. For memory mapping, the driver should first call NdisStartBufferPhysicalMapping. The physical addresses that this function writes are valid for netcard use only until the driver finishes the mapping by calling NdisCompleteBufferPhysicalMapping. Through the virtual address, the driver can only access data the netcard copies into operating system memory after the mapping is complete.

Note  An NDIS 3.0 NIC driver cannot allocate memory from its ISR or DPR.