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 请求,在 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