Freigeben über


DMA_CHANNEL_ALLOCATE_HANDLER Rückruffunktion (netdma.h)

Hinweis Die NetDMA-Schnittstelle wird nicht unterstützt.

in Windows 8 und höher.

 
Die ProviderAllocateDmaChannel--Funktion weist einen DMA-Kanal zu.

Syntax

DMA_CHANNEL_ALLOCATE_HANDLER DmaChannelAllocateHandler;

NTSTATUS DmaChannelAllocateHandler(
  [in]  PVOID ProviderContext,
  [in]  PNET_DMA_CHANNEL_PARAMETERS ChannelParameters,
  [in]  PVOID NetDmaChannelHandle,
  [out] PVOID *pProviderChannelContext
)
{...}

Parameter

[in] ProviderContext

Ein Zeiger, der den Kontextbereich eines DMA-Anbieters identifiziert. Der DMA-Anbietertreiber übergibt dieses Handle an die NetDMA-Schnittstelle in einem Aufruf an den NetDmaRegisterProvider Funktion.

[in] ChannelParameters

Ein Zeiger auf ein NET_DMA_CHANNEL_PARAMETERS Struktur, die die Konfigurationsparameter für den DMA-Kanal definiert.

[in] NetDmaChannelHandle

Ein Handle, das den DMA-Kanal identifiziert. Anbietertreiber übergeben dieses Handle an NetDma-Xxx--Funktionen, um den DMA-Kanal zu identifizieren.

[out] pProviderChannelContext

Ein Zeiger auf einen Wert, der einen Zeiger auf den Kontextbereich eines DMA-Anbieters für den DMA-Kanal darstellt. Der DMA-Anbietertreiber weist diesen Kontextbereich zu, bevor er von ProviderAllocateDmaChannelzurückkehrt. NetDMA übergibt den Kontextbereichzeiger an ProviderXxx- Funktionen, die einen Anbieterkanalkontext erfordern.

Rückgabewert

ProviderAllocateDmaChannel gibt einen der folgenden Statuswerte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_RESOURCES
Fehler beim Vorgang aufgrund unzureichender Ressourcen.
STATUS_UNSUCCESSFUL
Der Vorgang ist aus nicht angegebenen Gründen fehlgeschlagen.

Bemerkungen

Die NetDMA-Schnittstelle ruft die ProviderAllocateDmaChannel-Funktion eines DMA-Anbieters auf, um einen DMA-Kanal zuzuweisen. Die NetDMA-Schnittstelle ruft ProviderAllocateDmaChannel- auf, bevor ein DMA-Kanal verwendet wird.

Der DMA-Anbietertreiber versucht, einen DMA-Kanal mit einer Unterbrechungs-CPU-Affinität zuzuweisen, die einem Bit entspricht, das im ProcessorAffinityMask Mitglied des NET_DMA_CHANNEL_PARAMETERS Struktur im ChannelParameters--Parameter. Wenn MSI-X nicht unterstützt wird oder MSI-X unterstützt wird, aber ein DMA-Kanal mit einem übereinstimmenden Interrupt CPU-Affinität nicht verfügbar ist, weist der DMA-Anbietertreiber alle verfügbaren DMA-Kanal zu und ruft die KeSetTargetProcessorDpc Routine auf, um die Ziel-CPU des Interrupt-DPC so festzulegen, dass er einem der angegebenen Affinitätsmaskenbits entspricht.

Der DMA-Anbieter gibt immer die CPU-Nummer zurück, die er dem Interrupt-DPC für den DMA-Kanal an die NetDMA-Schnittstelle im CpuNumber Member der NET_DMA_CHANNEL_PARAMETERS-Struktur zugeordnet hat.

Der DMA-Anbietertreiber stellt einen Zeiger auf einen Block treiberzuordnunger Kontextinformationen an der pProviderChannelContext Parameter von ProviderAllocateDmaChannelbereit. In diesem Kontextbereich werden Informationen zum DMA-Kanal gespeichert. Die NetDMA-Schnittstelle übergibt die Kontextinformationen in nachfolgenden Aufrufen an ProviderXxx Funktionen, die einen DMA-Kanalkontext erfordern.

Wenn die NetDMA-Schnittstelle ProviderAllocateDmaChannel-aufruft, stellt sie ein Handle an der NetDmaChannelHandle Parameter bereit. Der DMA-Anbietertreiber verwendet dieses Handle in nachfolgenden Aufrufen von NetDma-Xxx--Funktionen, die dem DMA-Kanal zugeordnet sind.

Die NetDMA-Schnittstelle ruft die ProviderFreeDmaChannel--Funktion auf, um einen zuvor zugeordneten DMA-Kanal freizugeben.

NetDMA ruft ProviderAllocateDmaChannel bei IRQL-<= DISPATCH_LEVEL auf.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NetDMA 1.0-Treiber in Windows Vista.
Zielplattform- Fenster
Header- netdma.h (enthalten Netdma.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

KeSetTargetProcessorDpc

NET_DMA_CHANNEL_PARAMETERS

NetDmaRegisterProvider-

ProviderFreeDmaChannel