PCANCEL_ADAPTER_CHANNEL回呼函式 (wdm.h)
CancelAdapterChannel 例程會嘗試取消擱置要求以配置 DMA 通道。
語法
PCANCEL_ADAPTER_CHANNEL PcancelAdapterChannel;
BOOLEAN PcancelAdapterChannel(
[in] PDMA_ADAPTER DmaAdapter,
[in] PDEVICE_OBJECT DeviceObject,
[in] PVOID DmaTransferContext
)
{...}
參數
[in] DmaAdapter
DMA_ADAPTER 結構的指標。 此結構是等候授與擱置資源配置要求的配接器物件。 呼叫端從先前呼叫 ioGetDmaAdapter 例程取得此指標,而呼叫端會將此指標傳遞至要求資源配置的 AllocateAdapterChannelEx、GetScatterGatherListEx或 BuildScatterGatherListEx 呼叫。
[in] DeviceObject
DEVICE_OBJECT 結構的指標。 此結構是實體裝置物件 (PDO),代表要求 DMA 通道之 DMA 作業的目標裝置。
[in] DmaTransferContext
DMA 傳輸內容的指標。 此參數值必須是傳遞至 AllocateAdapterChannelEx、GetScatterGatherListEx或 BuildScatterGatherListEx 呼叫要求配接器通道配置的 DMA 傳輸內容。
傳回值
CancelAdapterChannel 如果成功取消擱置的配置要求,則會傳回 true。 如果無法取消要求,則例程會傳回 FALSE (例如,因為已配置 DMA 通道,然後才能取消要求)。
言論
CancelAdapterChannel 不是可以直接依名稱呼叫的系統例程。這個例程只能由 DMA_OPERATIONS 結構中傳回之位址的指標呼叫。驅動程式會呼叫 ioGetDmaAdapter ,並將 DeviceDescription 參數的 Version 成員 DEVICE_DESCRIPTION_VERSION3呼叫 IoGetDmaAdapter,以取得此例程的位址。 如果 IoGetDmaAdapter 傳回 NULL ,則您的平台上無法使用例程。
CancelAdapterChannel 嘗試取消異步呼叫配置例程所發出的擱置配置要求,例如 AllocateAdapterChannelEx、GetScatterGatherListEx或 BuildScatterGatherListEx。 以異步方式呼叫時,配置例程可以在配置要求仍在擱置時傳回,而且在驅動程式提供的執行例程之前傳回 (AdapterControl 或 AdapterListControl)。 如果 CancelAdapterChannel 成功取消暫止的配置要求,則不會配置資源,而且不會呼叫執行例程。
如果驅動程式呼叫 AllocateAdapterChannelEx 來要求驅動程式提供的 AdapterControl 例程的資源,然後呼叫 CancelAdapterChannel 來取消要求,CancelAdapterChannel 可以傳回下列其中一個值:
- TRUE,如果配接器對象在呼叫 CancelAdapterChannel 時等候要求的配置。 在此情況下,CancelAdapterChannel 會取消擱置的配置要求,而且不會呼叫驅動程式的 AdapterControl 例程。
- FALSE,如果 AdapterControl 例程已經呼叫或即將呼叫。
- TRUE,如果配接器對象在呼叫 CancelAdapterChannel 時等候要求的配置。 在此情況下,CancelAdapterChannel 取消暫止的配置要求,而且不會呼叫驅動程式的 AdapterListControl 例程。
- FALSE,如果已呼叫 AdapterListControl 例程,或即將呼叫。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供。 |
目標平臺 | 桌面 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | <= DISPATCH_LEVEL |