A.2.3.5 Memory and I/O Functions
The NDIS interface library provides a set of memory functions that translate general operating system requests into OS-specific calls. This allows a standard portable interface that supports the various operating environments for NDIS 3.0 drivers. Memory functions of the NDIS interface library are defined in Table A.2.8.
Table A.2.8 Memory and I/O Functions
| Function | Definition |
| NdisAllocateMemory | Allocates memory for use by a driver. |
| NdisAllocateSharedMemory | Allocates memory the NIC driver shares with its network interface card. |
| NdisFlushBuffer | Flushes a buffer allocated as shared memory. |
| NdisFreeMemory | Frees memory that NdisAllocateMemory allocates. |
| NdisFreeSharedMemory | Frees memory that NdisAllocateSharedMemory allocates. |
| NdisGetCacheFillSize | Retrieves the host cache fill size. |
| NdisMapIoSpace | Maps a physical I/O address into a virtual address for a network card that has memory with a physical address in the host I/O space. |
| NdisMoveFromMappedMemory | Copies to host memory from memory mapped using NdisMapIoSpace. |
| NdisMoveMappedMemory | Copies memory data to/from a network card physical I/O address that NdisMapIoSpace has mapped to a virtual address. |
| NdisMoveMemory | Copies memory data from one location to another. |
| Ndis MoveToMappedMemory | Copies data from host memory to memory mapped using NdisMapIoSpace. |
| NdisRawReadPort Functions | Read a single piece of data from an I/O port. Specific functions include:
NdisRawReadPortUchar |
| NdisRawReadPortBuffer Functions | Read a buffer of data from an I/O port. Specific functions include:
NdisRawReadPortBufferUchar |
| NdisRawWritePort Functions | Writes a single piece of data to an I/O port. Specific functions include:
NdisRawWritePortUchar |
| NdisRawWritePortBuffer Functions | Writes a buffer of data to I/O port. Specific functions include:
NdisRawWritePortBufferUchar |
| NdisReadPort Functions | Read a single piece of data from an I/O port. Specific functions include: |
| NdisReadPortBuffer Functions | Read a buffer of data from an I/O port. Specific functions include:
NdisReadPortBufferUchar |
| NdisReadRegister Functions | Read data from non-cached memory. Specific functions are:
NdisReadRegisterUchar |
| NdisUnmapIoSpace | Disassociates a physical I/O address from a virtual address that NdisMapIoSpace has mapped to it. |
| NdisUpdateSharedMemory | Ensures that data that the NIC driver reads from a shared memory region is fully up to date. |
| NdisWritePort Functions | Write a single piece of data to an I/O port. Specific functions include: |
| NdisWritePortBuffer Functions | Write a buffer of data to an I/O port. Specific functions include:
NdisWritePortBufferUchar |
| NdisWriteRegister Functions | Write a single piece of data to non-cached memory. Specific functions are:
NdisWriteRegisterUchar |
| NdisZeroMappedMemory | Zeroes out memory that NdisMapIoSpace maps. |
| NdisZeroMemory | Zeroes out a block of memory. |