NdisFlushBuffer function
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
NdisFlushBuffer flushes the memory region described by a given buffer descriptor from all processor caches.
Syntax
VOID NdisFlushBuffer( _In_ PNDIS_BUFFER Buffer, _In_ BOOLEAN WriteToDevice );
Parameters
- Buffer [in]
-
Pointer to a buffer description mapping a buffer from which or into which data is transferred as a bus-master DMA operation.
- WriteToDevice [in]
-
Specifies TRUE if the NIC driver calls this function to flush a buffer before making a transfer from host memory to the NIC.
If the NIC driver specifies FALSE, it must ensure the buffer begins and ends on a cache-line boundary.
Return value
None
Remarks
Drivers of bus-master DMA NICs call NdisFlushBuffer to maintain data integrity in shared memory. Flushing the buffer ensures coherency between the host memory cache and processor physical memory before a DMA transfer to or from the network interface card.
The driver flushes such a buffer when data that it shares with its NIC might be cached. For any transfer between host memory and a bus-master DMA NIC, the miniport driver must flush the buffer before the transfer starts. Such a driver also must ensure that host memory is not accessed until the transfer completes.
Requirements
Version | Not supported for NDIS 6.0 drivers in Windows Vista. Use KeFlushIoBuffers instead. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP. |
---|---|
Header |
|
IRQL | <= DISPATCH_LEVEL |
See also