共用方式為


PINITIALIZE_DMA_TRANSFER_CONTEXT回呼函式 (wdm.h)

InitializeDmaTransferContext 例程會初始化不透明的 DMA 傳輸內容,用來追蹤 DMA 資源的擱置配置。

語法

PINITIALIZE_DMA_TRANSFER_CONTEXT PinitializeDmaTransferContext;

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

參數

[in] DmaAdapter

DMA_ADAPTER 結構的指標。 這個結構是代表驅動程式總線主要 DMA 裝置或系統 DMA 通道的配接器物件。 呼叫端從先前對 ioGetDmaAdapter 例程的呼叫取得此指標。

[out] DmaTransferContext

呼叫端配置的緩衝區指標,InitializeDmaTransferContext 寫入 DMA 傳輸內容的初始值。 此內容對呼叫端而言是不透明的。 呼叫端必須配置足以包含 DMA 傳輸內容的緩衝區。 此內容的大小,以位元組為單位,是由 Wdm.h 頭檔中 DMA_TRANSFER_CONTEXT_SIZE_V1 常數所指定。

傳回值

InitializeDmaTransferContext 如果呼叫成功,就會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括下列狀態代碼。

傳回碼 描述
STATUS_INVALID_PARAMETERS
由於呼叫端傳遞的參數值無效,所以此例程失敗。

言論

InitializeDmaTransferContext 不是可以直接依名稱呼叫的系統例程。這個例程只能由 DMA_OPERATIONS 結構中傳回之位址的指標呼叫。驅動程式會呼叫 ioGetDmaAdapter ,並將 DeviceDescription 參數的 Version 成員 DEVICE_DESCRIPTION_VERSION3呼叫 IoGetDmaAdapter,以取得此例程的位址。 如果 IoGetDmaAdapter 傳回 NULL ,則您的平台上無法使用例程。

初始化的 DMA 傳輸內容必須做為參數提供給 AllocateAdapterChannelExGetScatterGatherListExBuildScatterGatherListEx 例程。 每個例程都會將所要求的 DMA 資源配置相關信息寫入 DMA 傳輸內容。 這項資訊對呼叫者不透明。 若要取消擱置的配置要求,呼叫端必須將要求的 DMA 傳輸內容提供給 CancelAdapterChannel 例程。

提供給 AllocateAdapterChannelExGetScatterGatherListExBuildScatterGatherListEx 的 DMA 傳輸內容,在所有配接器配置要求中都必須是唯一的。

要求

要求 價值
最低支援的用戶端 從 Windows 8 開始提供。
目標平臺 桌面
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
IRQL <= DISPATCH_LEVEL

另請參閱

AllocateAdapterChannelEx

BuildScatterGatherListEx

CancelAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

GetScatterGatherListEx

IoGetDmaAdapter