WdfDmaEnablerWdmGetDmaAdapter-Funktion (wdfdmaenabler.h)
[Gilt nur für KMDF]
Die WdfDmaEnablerWdmGetDmaAdapter Methode gibt einen Zeiger auf eine WDM-DMA_ADAPTER-Struktur zurück, die einem DMA-Enabler-Objekt zugeordnet ist.
Syntax
PDMA_ADAPTER WdfDmaEnablerWdmGetDmaAdapter(
[in] WDFDMAENABLER DmaEnabler,
[in] WDF_DMA_DIRECTION DmaDirection
);
Die Parameter
[in] DmaEnabler
Ein Handle für ein DMA-Enabler-Objekt, das der Treiber aus einem vorherigen Aufruf von WdfDmaEnablerCreateabgerufen hat.
[in] DmaDirection
Ein WDF_DMA_DIRECTION-typed-Wert, der die Richtung des DMA-Übertragungsvorgangs angibt. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
WdfDmaEnablerWdmGetDmaAdapter einen Zeiger auf eine DMA_ADAPTER Struktur zurück oder NULL-, wenn der Wert des DmaDirection Parameters ungültig ist.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Wenn Ihr Treiber WdfDmaEnablerCreateaufruft, erstellt das Framework ein separates Adapterobjekt für jede Richtung, wenn der Treiber ein Duplexprofil angibt, und erstellt ein einzelnes Adapterobjekt, wenn der Treiber kein Duplexprofil angibt.
Wenn ihr Treiber beim Aufrufen WdfDmaEnablerCreateein Duplexprofil angegeben hat, WdfDmaEnablerWdmGetDmaAdapter DmaDirection Parameter der Methode'' der Wert muss WdfDmaDirectionReadFromDevice- sein, um die DMA_ADAPTER Struktur für Lesevorgänge abzurufen, und WdfDmaDirectionWriteToDevice-, um die DMA_ADAPTER Struktur für Schreibvorgänge abzurufen. Wenn ihr Treiber kein Duplexprofil angegeben hat, kann der Treiber entweder WdfDmaDirectionReadFromDevice oder WdfDmaDirectionWriteToDeviceangeben.
Der Zeiger, der WdfDmaEnablerWdmGetDmaAdapter zurückgibt, ist gültig, bis das DMA-Aktivierungsobjekt gelöscht wird. Wenn der Treiber eine EvtCleanupCallback--Funktion für das DMA-Aktivierungsobjekt bereitstellt, ist der Zeiger gültig, bis die Rückruffunktion zurückgegeben wird.
Beispiele
Im folgenden Codebeispiel wird ein DMA-Enabler-Objekt erstellt und anschließend Zeiger auf die WDM-DMA_ADAPTER Strukturen, die das Framework für Lese- und Schreibvorgänge erstellt, erhalten.
NTSTATUS status = STATUS_SUCCESS;
WDF_DMA_ENABLER_CONFIG dmaConfig;
WDFDMAENABLER dmaEnabler;
PDMA_ADAPTER readAdapter, writeAdapter;
WDF_DMA_ENABLER_CONFIG_INIT(
&dmaConfig,
WdfDmaProfileScatterGatherDuplex,
maxLength
);
status = WdfDmaEnablerCreate(
Device,
&dmaConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&dmaEnabler
);
if (!NT_SUCCESS (status)) {
return status;
}
readAdapter = WdfDmaEnablerWdmGetDmaAdapter(
dmaEnabler,
WdfDmaDirectionReadFromDevice
);
writeAdapter = WdfDmaEnablerWdmGetDmaAdapter(
dmaEnabler,
WdfDmaDirectionWriteToDevice
);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | universell |
Minimale KMDF-Version | 1.5 |
Kopfzeile | wdfdmaenabler.h (include Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.) |
IRQL | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |