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 任何级别 (请参阅“备注”部分)

另请参阅

NdisAllocateMdl

NdisFreeMdl