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 请求来查询 BUS_INTERFACE_STANDARD 接口,同时仍位于 IRQL = PASSIVE_LEVEL。

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h(包括 Ntddk.h、Wdm.h)
IRQL PASSIVE_LEVEL

另请参阅

BUS_INTERFACE_STANDARD

DEVICE_DESCRIPTION

DMA_ADAPTER

IoGetDmaAdapter