NdisAdjustMdlLength 宏 (ndis.h)
NdisAdjustMdlLength 函数修改与 MDL 关联的数据的长度。
语法
void NdisAdjustMdlLength(
[in] _Mdl,
[in] _Length
);
参数
[in] _Mdl
指向内存描述符列表(MDL)的指针。
[in] _Length
MDL 描述的数据字节数。
返回值
没有
言论
NdisAdjustMdlLength 函数修改通过调用 NdisAllocateMdl 函数分配的 MDL ByteCount 成员。
NdisAdjustMdlLength 的调用方只能传递调用方分配的 MDL 描述符。 它无法传递另一个驱动程序分配的 MDL 描述符。
例如,总线主 DMA NIC 的驱动程序使用 MDL 描述符调用 NdisAdjustMdlLength,该描述符分配用于在其共享内存块中指定接收 MDL。 在此类驱动程序指示接收的数据之前,它会调用 NdisAdjustMdlLength,以使它包含在接收指示中的 MDL 描述符与接收的数据的大小匹配(如果它小于 NIC 接收缓冲区的大小)。
传递给 NdisAdjustMdlLength 的长度不能大于分配 MDL 描述符时传递给 NdisAllocateMdl 的长度。
NdisAdjustMdlLength 的调用方必须先将长度还原为其原始值,然后才能使用 NdisFreeMdl释放 MDL 描述符。
NdisAdjustMdlLength 的调用方可以在任何 IRQL 上运行,但通常以 IRQL <= DISPATCH_LEVEL 运行。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.0 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | 任何级别 (请参阅“备注”部分) |