共用方式為


WdfDmaEnablerWdmGetDmaAdapter 函式 (wdfdmaenabler.h)

[僅適用於 KMDF]

WdfDmaEnablerWdmGetDmaAdapter 方法會傳回與 DMA enabler 對象相關聯的 WDM DMA_ADAPTER 結構的指標。

語法

PDMA_ADAPTER WdfDmaEnablerWdmGetDmaAdapter(
  [in] WDFDMAENABLER     DmaEnabler,
  [in] WDF_DMA_DIRECTION DmaDirection
);

參數

[in] DmaEnabler

驅動程式從先前呼叫 WdfDmaEnablerCreate 取得的 DMA 啟用器物件的句柄。

[in] DmaDirection

指定 DMA 傳輸作業方向的 WDF_DMA_DIRECTION型別值。 如需詳細資訊,請參閱接下來的<備註>一節。

傳回值

WdfDmaEnablerWdmGetDmaAdapter 會傳回DMA_ADAPTER結構的指標,如果 DmaDirection 參數的值無效,則傳回 NULL

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

備註

當您的驅動程式呼叫 WdfDmaEnablerCreate 時,如果驅動程式指定雙工配置檔,架構會為每個方向建立個別的配接器 物件 ,如果驅動程式未指定雙工配置檔,則會建立單一配接器物件。

如果您的驅動程式在呼叫 WdfDmaEnablerCreate 時指定雙工配置檔, WdfDmaEnablerWdmGetDmaAdapter 方法的 DmaDirection 參數值必須是 WdfDmaDirectionReadFromDevice ,才能取得讀取作業 的DMA_ADAPTER 結構, WdfDmaDirectionWriteToDevice 才能取得寫入作業 的DMA_ADAPTER 結構。 如果您的驅動程式未指定雙工配置檔,驅動程式可以指定 WdfDmaDirectionReadFromDeviceWdfDmaDirectionWriteToDevice

WdfDmaEnablerWdmGetDmaAdapter 傳回的指標有效,直到刪除 DMA enabler 對象為止。 如果驅動程式為 DMA 啟用程式物件提供 EvtCleanupCallback 函式,則指標會有效,直到回呼函式傳回為止。

範例

下列程式代碼範例會建立 DMA enabler 對象,然後取得架構針對讀取和寫入作業所建立之 WDM DMA_ADAPTER 結構的指標。

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
                                             );

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.5
標頭 wdfdmaenabler.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

DMA_ADAPTER

WDF_DMA_DIRECTION

WdfDmaEnablerCreate