NetDmaRegisterProvider-Funktion (netdma.h)
in Windows 8 und höher.
Syntax
NET_DMA_EXPORT NTSTATUS NetDmaRegisterProvider(
[in] PVOID ProviderContext,
[in] PVOID *pNetDmaProviderHandle,
[in] PNET_DMA_PROVIDER_CHARACTERISTICS ProviderCharacteristics
);
Parameter
[in] ProviderContext
Ein Zeiger auf einen Block mit vom Treiber zugewiesenen Kontextinformationen, der Informationen zum DMA-Anbieter speichert. NetDMA übergibt die Kontextinformationen in nachfolgenden Aufrufen von Anbieter-Xxx-Funktionen, die einen DMA-Anbieterkontext erforderten.
[in] pNetDmaProviderHandle
Ein Zeiger auf einen Wert, bei dem es sich um ein Handle handelt, das NetDmaRegisterProvider zur Identifizierung des DMA-Anbieters bereitstellt. Der DMA-Anbietertreiber übergibt dieses Handle an NetDmaXxx-Funktionen , die ein Anbieterhandle erfordern.
[in] ProviderCharacteristics
Ein Zeiger auf eine NET_DMA_PROVIDER_CHARACTERISTICS Struktur, die die Merkmale des DMA-Anbieters definiert.
Rückgabewert
NetDmaRegisterProvider kann einen der folgenden Werte zurückgeben:
Rückgabecode | Beschreibung |
---|---|
|
Der Vorgang wurde erfolgreich abgeschlossen. |
|
Der Vorgang ist aufgrund unzureichender Ressourcen fehlgeschlagen. |
|
Der Vorgang ist aus nicht angegebenen Gründen fehlgeschlagen. |
Hinweise
DMA-Anbietertreiber rufen die NetDmaRegisterProvider-Funktion auf, um einen DMA-Anbieter zu registrieren. DMA-Anbietertreiber rufen NetDmaRegisterProvider in ihrer AddDevice-Routine auf.
In der AddDevice-Routine ruft der DMA-Anbietertreiber die IoCreateDevice-Funktion auf, um ein funktionales Geräteobjekt (Functional Device Object, FDO) zu erstellen, und fügt es am Anfang des Gerätestapels ein. Der DMA-Anbietertreiber ruft dann NetDmaRegisterProvider auf, um den zugeordneten DMA-Anbieter zu registrieren.
Der DMA-Anbietertreiber stellt ein NET_DMA_PROVIDER_CHARACTERISTICS Struktur am ProviderCharacteristics-Parameter von NetDmaRegisterProvider. Die NET_DMA_PROVIDER_CHARACTERISTICS-Struktur gibt die Merkmale für einen NetDMA-Anbieter an, einschließlich der Einstiegspunkte für die ProviderXxx-Funktionen .
Der DMA-Anbietertreiber stellt einen Zeiger auf einen Block von vom Treiber zugeordneten Kontextinformationen im ProviderContext-Parameter von NetDmaRegisterProvider bereit. In diesem Kontextbereich werden Informationen zum DMA-Anbieter gespeichert. Die NetDMA-Schnittstelle übergibt die Kontextinformationen in nachfolgenden Aufrufen von ProviderXxx-Funktionen , die einen DMA-Anbieterkontext erfordern.
Wenn NetDmaRegisterProvider zurückgibt, stellt er ein Handle an dem Speicherort bereit, den der Parameter pNetDmaProviderHandle angibt. Die NetDMA-Schnittstelle weist dieses Handle zu, um den DMA-Anbieter zu identifizieren. Der DMA-Anbietertreiber verwendet dieses Handle bei allen nachfolgenden Aufrufen von NetDmaXxx-Funktionen , die dem DMA-Anbieter zugeordnet sind.
Wenn ein Computer MSI-X unterstützt, ruft die NetDMA-Schnittstelle im Kontext der NetDmaRegisterProvider-Funktion den DMA-Anbietertreiber auf. ProviderSetDmaChannelCpuAffinity-Funktion , um die CPU-Affinität des Interrupts für jeden DMA-Kanal anzugeben.
Wenn ein Computer MSI-X unterstützt, kann der DMA-Anbietertreiber Interruptaffinitäten angeben, während IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP. Nachdem die AddDevice-Routine erfolgreich zurückgegeben wurde, sendet der Plug & Play-Manager (PnP) den IRP_MN_FILTER_RESOURCE_REQUIREMENTS IRP für den DMA-Anbieter. Der DMA-Anbietertreiber muss versuchen, MSI-X-Interruptressourcen entsprechend den Affinitätsparametern zuzuordnen, die die NetDMA-Schnittstelle an ProviderSetDmaChannelCpuAffinity übergeben hat.
Um die Registrierung eines DMA-Anbieters aufzuheben, ruft ein DMA-Anbietertreiber die NetDmaDeregisterProvider-Funktion .
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt für NetDMA 1.0-Treiber in Windows Vista. |
Zielplattform | Universell |
Header | netdma.h (netdma.h einschließen) |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
IRP_MN_FILTER_RESOURCE_REQUIREMENTS NET_DMA_PROVIDER_CHARACTERISTICS ProviderSetDmaChannelCpuAffinityFeedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für