共用方式為


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

另請參閱

BUS_INTERFACE_STANDARD

DEVICE_DESCRIPTION

DMA_ADAPTER

IoGetDmaAdapter