次の方法で共有


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

ミニポートInitializeEx するハンドル入力を指定します。

[in] PhysicalAddress

マップするデバイス メモリ範囲のバス相対ベース物理アドレスを指定します。

[in] Length

マップするバイト数を指定します。

戻り値

NdisMMapIoSpace は、次のいずれかの状態値を返すことができます。

リターン コード 形容
NDIS_STATUS_SUCCESS
デバイス のメモリ範囲が正常にマップされたため、VirtualAddress の値が有効であり、NIC のレジストリでマップされた範囲が要求されました。
NDIS_STATUS_RESOURCE_CONFLICT
別のドライバーがそのデバイスの範囲を既に要求しているために、レジストリ内のデバイス メモリの範囲を要求しようとしましたが失敗しました。 NdisMMapIoSpace 、これが発生した場合にエラーをログに記録します。
NDIS_STATUS_RESOURCES
メモリをマップできなかったか、十分な仮想メモリを割り当てませんでした。
NDIS_STATUS_FAILURE
バスの種類またはバス番号が範囲外であるか、指定された PhysicalAddressの長さ が無効でした (現在のプラットフォームの I/O 領域内にない可能性があります)。

備考

この関数は、ホストの I/O 空間に表示されるオンボード メモリまたはデバイス レジスタのバンクを持つ NIC のドライバーによって呼び出されます。 たとえば、PIO を使用する NIC のドライバーは、NdisMMapIoSpace 呼び出します。

NdisMMapIoSpace 呼び出しが成功すると、ドライバーの NIC のレジストリ内のハードウェア リソースが要求されます。 したがって、ミニポートInitializeEx 関数のみが NdisMMapIoSpace 呼び出します。

NdisMMapIoSpace は、virtualAddress の変数、NDIS_STATUS_SUCCESSを返さない場合は NULL に設定します。

MiniportInitializeEx は、ドライバーの パラメーター レジストリ キーから PhysicalAddress 値を取得するか、NdisXxx構成関数をバスの種類固有の を呼び出すことによって取得します。 指定された物理アドレス範囲は、現在のプラットフォームの I/O 空間内に収まるようにする必要があります。 これは、ホストの物理メモリ アドレス NdisMMapIoSpace を呼び出すプログラミング エラーです。

ミニポート ドライバーは、ミニポートInitializeEx が後で NIC の初期化に失敗した場合、NIC がコンピューターから削除された場合、またはドライバーがアンロードするときに、システム リソースに対する要求を解放するために、NdisMUnmapIoSpace の逆数 を呼び出す必要があります。

必要条件

要件 価値
サポートされる最小クライアント 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)

関連項目

ミニポートHaltEx

ミニポートInitializeEx

NdisMGetBusData

NdisMUnmapIoSpace

NdisOpenConfigurationEx

NdisReadRegisterUchar

NdisReadRegisterUlong

NdisReadRegisterUshort

NdisWriteRegisterUchar

NdisWriteRegisterUlong

NdisWriteRegisterUshort