NdisAllocateBuffer 函数 (ndis.h)

注释 NDIS 5。 x 已被弃用,并被 NDIS 6 取代。 x。 有关新的 NDIS 驱动程序开发,请参阅从 Windows Vista 开始网络驱动程序。 有关移植 NDIS 5 的信息。 将 x 驱动程序 到 NDIS 6。 x,请参阅 将 NDIS 5.x 驱动程序移植到 NDIS 6.0

NdisAllocateBuffer 在已分配的非分页内存块中创建映射指定虚拟(子)范围的缓冲区描述符。

语法

void NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

参数

[out] Status

指向调用方提供的变量的指针,在此变量中,此函数返回缓冲区分配的最终状态,如果缓冲区在 Buffer 返回有效的缓冲区描述符指针,则NDIS_STATUS_SUCCESS该变量,否则NDIS_STATUS_FAILURE。

[out] Buffer

指向调用方提供的变量的指针,在此变量中,此函数返回指向分配的缓冲区描述符的指针。

[in, optional] PoolHandle

指定上述调用 NdisAllocateBufferPool返回的句柄。

[in] VirtualAddress

指向在返回的缓冲区描述符中映射的以前分配的系统空间内存的基虚拟地址的指针。

[in] Length

指定要映射的字节数。

返回值

没有

言论

返回值:无

NdisAllocateBuffer 分配存储并初始化缓冲区描述符,以映射以前分配的内存的指定范围,例如用于数据包标头或 NIC 接收缓冲区的内存。

缓冲区描述符分配在 NdisAllocateBufferPool 创建的缓冲池上绘制。 驱动程序可以根据需要多次调用 NdisAllocateBuffer,以在初始化期间调用 NdisAllocateBufferPool 时分配所需的缓冲区描述符。

所有较低级别的 NDIS 驱动程序必须分配它们链接到缓冲池中的数据包的所有缓冲区描述符。 只有最高级别的协议驱动程序可以给定与 OS 相关的描述符映射虚拟内存范围,并且,如果这些内存描述符等效于 NDIS 缓冲区描述符,则最高级别的协议可以将此类描述符作为参数传递给 NdisXxx 函数。

要求

要求 价值
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

另请参阅