NetDmaRegisterProvider 関数 (netdma.h)
Windows 8 以降。
構文
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
パラメーター
[in] ProviderContext
DMA プロバイダーに関する情報を格納するドライバー割り当てコンテキスト情報のブロックへのポインター。 NetDMA は、DMA プロバイダー コンテキストを必要とする ProviderXxx 関数の後続の呼び出しでコンテキスト情報を渡します。
[in] pNetDmaProviderHandle
DMA プロバイダーを識別するために NetDmaRegisterProvider が提供するハンドルである値へのポインター。 DMA プロバイダー ドライバーは、プロバイダー ハンドルを必要とする NetDmaXxx 関数にこのハンドルを渡します。
[in] ProviderCharacteristics
へのポインター NET_DMA_PROVIDER_CHARACTERISTICS DMA プロバイダーの特性を定義する構造体です。
戻り値
NetDmaRegisterProvider は、次のいずれかの値を返すことができます。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
リソースが不足しているため、操作に失敗しました。 |
|
指定されていない理由で操作が失敗しました。 |
注釈
DMA プロバイダー ドライバーは、 NetDmaRegisterProvider 関数を呼び出して DMA プロバイダーを登録します。 DMA プロバイダー ドライバーは、AddDevice ルーチンで NetDmaRegisterProvider を呼び出します。
AddDevice ルーチンでは、DMA プロバイダー ドライバーは IoCreateDevice 関数を呼び出して機能デバイス オブジェクト (FDO) を作成し、デバイス スタックの上部に挿入します。 その後、DMA プロバイダー ドライバーは NetDmaRegisterProvider を呼び出して、関連付けられている DMA プロバイダーを登録します。
DMA プロバイダー ドライバーは、NetDmaRegisterProvider の ProviderCharacteristics パラメーターで構造体をNET_DMA_PROVIDER_CHARACTERISTICSします。 NET_DMA_PROVIDER_CHARACTERISTICS構造体は、 ProviderXxx 関数のエントリ ポイントなど、NetDMA プロバイダーの特性を指定します。
DMA プロバイダー ドライバーは、NetDmaRegisterProvider の ProviderContext パラメーターで、ドライバーによって割り当てられたコンテキスト情報のブロックへのポインターを提供します。 このコンテキスト領域には、DMA プロバイダーに関する情報が格納されます。 NetDMA インターフェイスは、DMA プロバイダー コンテキストを必要とする ProviderXxx 関数の後続の呼び出しでコンテキスト情報を渡します。
NetDmaRegisterProvider が返されると、pNetDmaProviderHandle パラメーターが指定する場所にハンドルが提供されます。 NetDMA インターフェイスは、DMA プロバイダーを識別するためにこのハンドルを割り当てます。 DMA プロバイダー ドライバーは、DMA プロバイダーに関連付けられている NetDmaXxx 関数への後続のすべての呼び出しでこのハンドルを使用します。
コンピューターが MSI-X をサポートしている場合、NetDMA インターフェイスは NetDmaRegisterProvider 関数のコンテキストで DMA プロバイダー ドライバーを呼び出します。各 DMA チャネルの割り込みの CPU アフィニティを指定する ProviderSetDmaChannelCpuAffinity 関数。
コンピューターが MSI-X をサポートしている場合、DMA プロバイダー ドライバーは、 の処理中に割り込みアフィニティを指定できます。 IRP_MN_FILTER_RESOURCE_REQUIREMENTS Irp。 AddDevice ルーチンが正常に戻った後、プラグ アンド プレイ (PnP) マネージャーは、DMA プロバイダーのIRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP を送信します。 DMA プロバイダー ドライバーは、NetDMA インターフェイスが ProviderSetDmaChannelCpuAffinity に渡したアフィニティ パラメーターに従って、MSI-X 割り込みリソースの割り当てを試みる必要があります。
DMA プロバイダーの登録を解除するには、DMA プロバイダー ドライバーは を呼び出します。 NetDmaDeregisterProvider 関数。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista の NetDMA 1.0 ドライバーでサポートされています。 |
対象プラットフォーム | ユニバーサル |
Header | netdma.h (Netdma.h を含む) |
IRQL | PASSIVE_LEVEL |