2.3.2.3 I/O Port Functions

The NDIS library provides a set of I/O functions that a miniport NIC driver calls to access I/O ports. These calls provide a standard portable interface that supports the various operating environments for NDIS drivers. Functions are provided for mapping ports, for claiming I/O resources and for reading from and writing to the mapped and unmapped I/O ports.

Function

Definition

NdisMRegisterIoPortRange

Sets up access to I/O ports for using NdisRawReadPortXxx and NdisRawWritePortXxx.

NdisMDeregisterIoPortRange

Removes access to I/O ports previously registered with NdisMRegisterIoPortRange.

NdisMMapIoSpace

Maps a range of device memory for subsequent PIO operations.

NdisMUnmapIoSpace

Releases a region mapped by a call to NdisMMapIoSpace.

NdisImmediateReadSharedMemory

Reads a single buffer of data from a shared memory address before the driver has called NdisMMapIoSpace.

NdisImmediateWriteSharedMemory

Writes a single buffer of data to a shared memory address before the driver has called NdisMMapIoSpace.

NdisRawReadPortXxx

Read a single piece of data from an I/O port. Specific functions include:

  NdisRawReadPortUchar 
  NdisRawReadPortUlong
  NdisRawReadPortUshort

NdisRawReadPortBufferXxx

Read a buffer of data a piece at a time from an I/O port. Specific functions include:

  NdisRawReadPortBufferUchar
  NdisRawReadPortBufferUlong
  NdisRawReadPortBufferUshort

NdisRawWritePortXxx

Writes a single piece of data to an I/O port. Specific functions include:

  NdisRawWritePortUchar 
  NdisRawWritePortUlong
  NdisRawWritePortUshort

NdisRawWritePortBufferXxx

Writes a buffer of data to I/O port. Specific functions include:

  NdisRawWritePortBufferUchar
  NdisRawWritePortBufferUlong
  NdisRawWritePortBufferUshort

NdisImmediateReadPortXxx

Reads a piece of data from an I/O port before the driver has mapped the port by calling NdisMRegisterIoPortRange. Specific functions include:

  NdisImmediateReadPortUchar
  NdisImmediateReadPortUshort
  NdisImmediateReadPortUlong

NdisImmediateWritePortXxx

Writes a piece of data from an I/O port before the driver has mapped the port by calling NdisMRegisterIoPortRange. Specific functions include:

  NdisImmediateWritePortUchar
  NdisImmediateWritePortUshort
  NdisImmediateWritePortUlong