Freigeben über


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)

Siehe auch

DMA_ADAPTER

WDF_DMA_DIRECTION

WdfDmaEnablerCreate