Auf Englisch lesen

Freigeben über


PINITIALIZE_DMA_TRANSFER_CONTEXT Rückruffunktion (wdm.h)

Der InitializeDmaTransferContext Routine initialisiert einen undurchsichtigen DMA-Übertragungskontext, der zum Nachverfolgen ausstehender Zuordnungen von DMA-Ressourcen verwendet wird.

Syntax

C++
PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;

NTSTATUS PinitializeDmaTransferContext(
  [in]  PDMA_ADAPTER DmaAdapter,
  [out] PVOID DmaTransferContext
)
{...}

Parameter

[in] DmaAdapter

Ein Zeiger auf eine DMA_ADAPTER Struktur. Diese Struktur ist das Adapterobjekt, das das Busmaster-DMA-Gerät oder den DMA-Kanal des Treibers darstellt. Der Aufrufer hat diesen Zeiger aus einem vorherigen Aufruf an die IoGetDmaAdapter Routine abgerufen.

[out] DmaTransferContext

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, in den InitializeDmaTransferContext die Anfangswerte für den DMA-Übertragungskontext schreibt. Dieser Kontext ist für den Aufrufer nicht transparent. Der Aufrufer muss einen Puffer zuweisen, der groß genug ist, um den DMA-Übertragungskontext zu enthalten. Die Größe in Bytes dieses Kontexts wird durch die DMA_TRANSFER_CONTEXT_SIZE_V1 Konstante in der Wdm.h-Headerdatei angegeben.

Rückgabewert

InitializeDmaTransferContext gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind die folgenden Statuscodes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETERS
Diese Routine ist aufgrund ungültiger Parameterwerte fehlgeschlagen, die vom Aufrufer übergeben werden.

Bemerkungen

InitializeDmaTransferContext ist keine Systemroutine, die direkt nach Namen aufgerufen werden kann. Diese Routine kann nur durch Zeiger von der in einer DMA_OPERATIONS Struktur zurückgegebenen Adresse aufgerufen werden. Treiber rufen die Adresse dieser Routine ab, indem sie IoGetDmaAdapter- mit dem Version Member des DeviceDescription-Parameters aufrufen, der auf DEVICE_DESCRIPTION_VERSION3 festgelegt ist. Wenn IoGetDmaAdapterNULL-zurückgibt, ist die Routine auf Ihrer Plattform nicht verfügbar.

Ein initialisierter DMA-Übertragungskontext muss als Parameter für die AllocateAdapterChannelEx, GetScatterGatherListExoder BuildScatterGatherListEx Routine angegeben werden. Jede dieser Routinen schreibt Informationen über die angeforderte DMA-Ressourcenzuordnung in den DMA-Übertragungskontext. Diese Informationen sind für den Aufrufer nicht transparent. Um eine ausstehende Zuordnungsanforderung abzubrechen, muss der Aufrufer den DMA-Übertragungskontext für die Anforderung an die CancelAdapterChannel Routine bereitstellen.

Der DMA-Übertragungskontext, der für AllocateAdapterChannelEx-, GetScatterGatherListEx-oder BuildScatterGatherListEx- für alle Adapterzuordnungsanforderungen eindeutig sein muss.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
IRQL- <= DISPATCH_LEVEL

Siehe auch

AllocateAdapterChannelEx-

BuildScatterGatherListEx-

CancelAdapterChannel-

DMA_ADAPTER

DMA_OPERATIONS

GetScatterGatherListEx

IoGetDmaAdapter-