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.
PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;
NTSTATUS PinitializeDmaTransferContext(
[in] PDMA_ADAPTER DmaAdapter,
[out] PVOID DmaTransferContext
)
{...}
[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.
InitializeDmaTransferContext gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind die folgenden Statuscodes.
Rückgabecode | Beschreibung |
---|---|
|
Diese Routine ist aufgrund ungültiger Parameterwerte fehlgeschlagen, die vom Aufrufer übergeben werden. |
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.
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 |