Export (0) Print
Expand All
Expand Minimize

NdisMMapIoSpace (Windows CE 5.0)

Windows CE 5.0
Send Feedback

This function maps a specified bus-relative range of physical addresses or registers onto a system-space virtual range of addresses.

NDIS_STATUS NdisMMapIoSpace(
  PVOID* VirtualAddress,
  NDIS_HANDLE MiniportAdapterHandle,
  NDIS_PHYSICAL_ADDRESS PhysicalAddress,
  UINT Length
);

Parameters

VirtualAddress
[out] Pointer to a caller-supplied variable that is set to the converted virtual address if the call is successful.
MiniportAdapterHandle
[in] Handle input to the MiniportInitialize function.
PhysicalAddress
[in] Specifies the bus-relative base physical address of the device memory range to be mapped.
Length
[in] Specifies the number of bytes to be mapped.

Return Values

ValueDescription
NDIS_STATUS_SUCCESS The mapping was successful.
NDIS_STATUS_RESOURCE_CONFLICTAn attempt to claim the device memory range in the registry has failed, possibly because another driver has already claimed the range for its device. This function logs an error if this occurs.
NDIS_STATUS_RESOURCESThe memory could not be mapped or sufficient virtual memory could not be allocated.
NDIS_STATUS_FAILUREEither the bus type or bus number is out of range, or the specified PhysicalAddress and Length are invalid, possibly not within the I/O space of the current platform.

Remarks

Drivers of NICs that have on-board memory call this function or a bank of device registers appearing in the I/O space of the host. For example, the driver of an NIC that uses PI/O calls this function.

A successful call to this function claims hardware resources in the registry for the driver's NIC. Consequently, only MiniportInitialize functions call this function.

This function sets the variable at VirtualAddress to NULL if it does not return NDIS_STATUS_SUCCESS.

MiniportInitialize gets the PhysicalAddress value either from the driver's Parameters registry key or by calling a bus-type-specific NdisXXX configuration function. The specified physical address range must fall within the I/O space of the current platform. It is a programming error to call this function with a host physical memory address.

A miniport must call the reciprocal NdisMUnmapIoSpace function to release its claim on system resources if MiniportInitialize subsequently fails to initialize the NIC, if its NIC is removed from the machine, and/or when the driver is unloading.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Ndis.h.
Link Library: Ndis.dll.

See Also

MiniportInitialize | NdisMUnmapIoSpace | NdisOpenConfiguration | NdisReadPciSlotInformation


Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.


Show:
© 2014 Microsoft