共用方式為


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 結構之 Context 成員所傳遞的值。

[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 要求,查詢 BUS_INTERFACE_STANDARD 介面,同時仍位於 IRQL = PASSIVE_LEVEL。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 桌面
標頭 wdm.h (include Ntddk.h, Wdm.h)
IRQL PASSIVE_LEVEL

另請參閱

BUS_INTERFACE_STANDARD

DEVICE_DESCRIPTION

DMA_ADAPTER

IoGetDmaAdapter