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。 可能的錯誤傳回值包括下列狀態代碼。
傳回碼 | Description |
---|---|
|
此例程失敗,因為呼叫端所傳遞的參數值無效。 |
備註
InitializeDmaTransferContext 不是可直接依名稱呼叫的系統例程。此例程只能由DMA_OPERATIONS結構中傳回之位址的指標呼叫 驅動程式會呼叫IoGetDmaAdapter,並將DeviceDescription參數的Version成員設定為 DEVICE_DESCRIPTION_VERSION3,以取得此例程的位址。 如果 IoGetDmaAdapter 傳回 NULL,您的平台上無法使用例程。
初始化的 DMA 傳輸內容必須以參數的形式提供給 AllocateAdapterChannelEx、 GetScatterGatherListEx 或 BuildScatterGatherListEx 例程。 這些例程都會將要求的 DMA 資源配置相關信息寫入 DMA 傳輸內容。 這項資訊對呼叫端不透明。 若要取消擱置的配置要求,呼叫端必須將要求的 DMA 傳輸內容提供給 CancelAdapterChannel 例程。
提供給 AllocateAdapterChannelEx、 GetScatterGatherListEx 或 BuildScatterGatherListEx 的 DMA 傳輸內容在所有配接器配置要求中都必須是唯一的。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平台 | 桌面 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | <= DISPATCH_LEVEL |