GET_DMA_ADAPTER回呼函式 (wdm.h)
GetDmaAdapter 例程會傳回目標裝置的DMA_ADAPTER結構。
語法
GET_DMA_ADAPTER GetDmaAdapter;
_DMA_ADAPTER * GetDmaAdapter(
[in] PVOID Context,
[in] _DEVICE_DESCRIPTION *DeviceDescriptor,
[out] PULONG NumberOfMapRegisters
)
{...}
參數
[in] Context
介面特定內容資訊的指標。 呼叫端會傳遞值,這個值會當做介面之BUS_INTERFACE_STANDARD結構的內容成員傳遞。
[in] DeviceDescriptor
描述實體裝置屬性 之DEVICE_DESCRIPTION 結構的指標。
[out] NumberOfMapRegisters
在輸出上,驅動程式可配置給任何 DMA 傳輸作業的對應緩存器數目上限指標。 呼叫端必須配置 LONG 變數來接收此數據。
傳回值
GetDmaAdapter 例程會在成功時傳回DMA_ADAPTER結構的指標。 如果無法配置配接器結構,例程會傳回 NULL。
備註
如果驅動程式是在 IRQL = PASSIVE_LEVEL執行,它應該藉由呼叫 IoGetDmaAdapter 函式來取得裝置的 DMA 配接器物件。 IoGetDmaAdapter 會偵測總線驅動程式是否支援 BUS_INTERFACE_STANDARD 介面;如果這樣做, IoGetDmaAdapter 會呼叫這個介面 之 GetDmaAdapter 成員指向的例程,以取得配接器物件。 否則, IoGetDmaAdapter 會呼叫對等的舊版例程。
不過,如果驅動程式必須在 IRQL ≥ DISPATCH_LEVEL執行時取得配接器物件,它就無法使用 IoGetDmaAdapter 函式來取得。 在這種情況下,驅動程式必須藉由發出IRP_MN_QUERY_INTERFACE要求,在 IRQL = PASSIVE_LEVEL 查詢BUS_INTERFACE_STANDARD介面。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | 桌面 |
標頭 | wdm.h (包含 Ntddk.h、Wdm.h) |
IRQL | PASSIVE_LEVEL |