共用方式為


NetDmaRegisterProvider 函式 (netdma.h)

注意 不支援 NetDMA 介面

在 Windows 8 和更新版本中。

 
NetDmaRegisterProvider 函式會註冊 DMA 提供者。

語法

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

值的指標,這個值是 NetDmaRegisterProvider 提供用來識別 DMA 提供者的句柄。 DMA 提供者驅動程式會將此句柄傳遞給需要提供者句柄的 NetDmaXxx 函式。

[in] ProviderCharacteristics

的指標 NET_DMA_PROVIDER_CHARACTERISTICS 定義 DMA 提供者特性的結構。

傳回值

NetDmaRegisterProvider 可以傳回下列其中一個值:

傳回碼 Description
STATUS_SUCCESS
作業已成功完成。
STATUS_RESOURCES
作業失敗,因為資源不足。
STATUS_UNSUCCESSFUL
作業因未指定的原因而失敗。

備註

DMA 提供者驅動程式會呼叫 NetDmaRegisterProvider 函 式來註冊 DMA 提供者。 DMA 提供者驅動程式在其 AddDevice 例程中呼叫 NetDmaRegisterProvider

AddDevice 例程中,DMA 提供者驅動程式會呼叫 IoCreateDevice 函式來建立功能裝置物件, (FDO) ,並將它插入裝置堆疊頂端。 DMA 提供者驅動程序接著會呼叫 NetDmaRegisterProvider 來註冊相關聯的 DMA 提供者。

DMA 提供者驅動程式提供 NET_DMA_PROVIDER_CHARACTERISTICSNetDmaRegisterProvider的 ProviderCharacteristics 參數結構。 NET_DMA_PROVIDER_CHARACTERISTICS 結構會指定 NetDMA 提供者的特性,包括 ProviderXxx 函式的進入點。

DMA 提供者驅動程式會在 NetDmaRegisterProviderProviderContext 參數上,提供驅動程式配置內容資訊的區塊指標。 此內容區域會儲存 DMA 提供者的相關信息。 NetDMA 介面會在後續呼叫需要 DMA 提供者內容的 ProviderXxx 函式中傳遞內容資訊。

NetDmaRegisterProvider 傳回時,它會在 pNetDmaProviderHandle 參數指定的位置提供句柄。 NetDMA 介面會指派此句柄來識別 DMA 提供者。 DMA 提供者驅動程式會在與 DMA 提供者相關聯之 NetDmaXxx 函式的所有後續呼叫中使用這個句柄。

如果計算機支援 MSI-X,則 NetDMA 介面在 NetDmaRegisterProvider 函式的內容中,會呼叫 DMA 提供者驅動程式的 ProviderSetDmaChannelCpuAffinity 函式,可指定每個 DMA 通道中斷的 CPU 親和性。

如果計算機支援 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 驅動程序支援。
目標平台 Universal
標頭 netdma.h (包含 Netdma.h)
IRQL PASSIVE_LEVEL

另請參閱

AddDevice

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IoCreateDevice

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaDeregisterProvider

ProviderSetDmaChannelCpuAffinity