共用方式為


NdisMMapIoSpace 函式 (ndis.h)

NdisMMapIoSpace 對應特定總線相對的裝置 RAM 範圍,或登錄到系統空間虛擬範圍。

語法

NDIS_STATUS NdisMMapIoSpace(
  [out] PVOID                 *VirtualAddress,
  [in]  NDIS_HANDLE           MiniportAdapterHandle,
  [in]  NDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in]  UINT                  Length
);

參數

[out] VirtualAddress

呼叫端提供的變數指標,如果呼叫成功,該變數會設定為已轉換的虛擬位址。

[in] MiniportAdapterHandle

指定 MiniportInitializeEx的句柄輸入。

[in] PhysicalAddress

指定要對應之裝置記憶體範圍的總線相對基底實體位址。

[in] Length

指定要對應的位元組數目。

傳回值

NdisMMapIoSpace 可以傳回下列任何狀態值:

傳回碼 描述
NDIS_STATUS_SUCCESS
裝置記憶體範圍已成功對應,因此 VirtualAddress 的值有效,而且已宣告 NIC 登錄中的對應範圍。
NDIS_STATUS_RESOURCE_CONFLICT
嘗試宣告登錄中的裝置記憶體範圍失敗,可能是因為另一個驅動程式已經宣告其裝置的範圍。 NdisMMapIoSpace 如果發生這種情況,就會記錄錯誤。
NDIS_STATUS_RESOURCES
無法對應記憶體,或無法配置足夠的虛擬記憶體。
NDIS_STATUS_FAILURE
總線類型或總線號碼超出範圍,或指定的 PhysicalAddressLength 無效(可能不在目前平臺的 I/O 空間內)。

言論

此函式是由 NIC 的驅動程式所呼叫,這些驅動程式具有內建記憶體或裝置快取器銀行出現在主機的 I/O 空間中。 例如,使用 PIO 呼叫的 NIC 驅動程式 NdisMMapIoSpace

成功呼叫 NdisMMapIoSpace 會宣告驅動程式 NIC 登錄中的硬體資源。 因此,只有 MiniportInitializeEx 函式會呼叫 NdisMMapIoSpace

NdisMMapIoSpace 如果變數未傳回NDIS_STATUS_SUCCESS,VirtualAddress 設定為 NULL

MiniportInitializeEx 會從驅動程式的 Parameters 登錄機碼,或呼叫總線類型特定的 NdisXxx 組態函式,取得 PhysicalAddress 值。 指定的實體位址範圍必須落在目前平臺的 I/O 空間內。 使用主機物理記憶體位址呼叫 NdisMMapIoSpace 是程式設計錯誤。

如果 MiniportInitializeEx 後續無法初始化 NIC,則迷你埠驅動程式必須呼叫倒數 NdisMUnmapIoSpace,才能在系統資源上釋放其宣告。如果 NIC 已從計算機移除,以及/或當驅動程式卸除時,

要求

要求 價值
最低支援的用戶端 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisMMapIoSpace (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 NdisMMapIoSpace (NDIS 5.1)。
目標平臺 普遍
標頭 ndis.h (包括 Ndis.h)
連結庫 Ndis.lib
IRQL PASSIVE_LEVEL
DDI 合規性規則 Irql_Miniport_Driver_Function(ndis)NdisMMapIoSpace(ndis)

另請參閱

MiniportHaltEx

MiniportInitializeEx

NdisMGetBusData

NdisMUnmapIoSpace

NdisOpenConfigurationEx

NdisReadRegisterUchar

NdisReadRegisterUlong

NdisReadRegisterUshort

NdisWriteRegisterUchar

NdisWriteRegisterUlong

NdisWriteRegisterUshort