wdm.h) (DMA_TRANSFER_INFO_V1 结构
DMA_TRANSFER_INFO_V1结构包含散点/收集列表的分配要求,该列表描述了 DMA 传输的 I/O 数据缓冲区。
语法
typedef struct _DMA_TRANSFER_INFO_V1 {
ULONG MapRegisterCount;
ULONG ScatterGatherElementCount;
ULONG ScatterGatherListSize;
} DMA_TRANSFER_INFO_V1, *PDMA_TRANSFER_INFO_V1;
成员
MapRegisterCount
将散点/收集列表中的所有物理地址转换为逻辑地址所需的映射寄存器数。
ScatterGatherElementCount
散点/收集列表中的散点/聚集元素数。 每个元素都是 SCATTER_GATHER_ELEMENT类型的结构。
ScatterGatherListSize
散点/收集缓冲区的所需大小(以字节为单位)。 此缓冲区包含散点/收集列表,该列表描述了在 DMA 传输期间用于缓冲 I/O 数据的内存。 散点/收集缓冲区必须足够大,才能包含 SCATTER_GATHER_LIST 结构和 SCATTER_GATHER_ELEMENT 结构数组,以及操作系统内部使用的其他数据。
注解
DMA_TRANSFER_INFO 结构的 V1 成员是 DMA_TRANSFER_INFO_V1 类型的结构。
GetDmaTransferInfo 例程的 Mdl、Offset 和 Length 参数共同描述了 DMA 传输的 I/O 数据缓冲区。 为了对 DMA 控制器进行编程,可以通过散点/收集列表更方便地描述此缓冲区。 (散点/收集列表描述 I/O 数据缓冲区中的内存,但不包含此内存。) 驱动程序调用 GetDmaTransferInfo 以获取此散点/收集列表的分配要求。 GetDmaTransferInfo 将分配要求写入调用方提供的DMA_TRANSFER_INFO结构的 V1 成员。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 8 开始支持。 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |