NDIS_SHARED_MEMORY_PARAMETERS 结构 (ndis.h)
NDIS_SHARED_MEMORY_PARAMETERS 结构指定共享内存分配请求的共享内存参数。
语法
typedef struct _NDIS_SHARED_MEMORY_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_RECEIVE_QUEUE_ID QueueId;
NDIS_HANDLE SharedMemoryHandle;
NODE_REQUIREMENT PreferredNode;
NDIS_SHARED_MEMORY_USAGE Usage;
ULONG Length;
PVOID VirtualAddress;
ULONG SGListBufferLength;
PSCATTER_GATHER_LIST SGListBuffer;
NDIS_NIC_SWITCH_VPORT_ID VPortId;
} NDIS_SHARED_MEMORY_PARAMETERS, *PNDIS_SHARED_MEMORY_PARAMETERS;
成员
Header
NDIS_SHARED_MEMORY_PARAMETERS结构的类型、修订版本和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
微型端口驱动程序必须将 Header 的 Type 成员设置为NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_SHARED_MEMORY_PARAMETERS 结构的版本,驱动程序必须将 Header 的 Revision 成员设置为以下值之一:
NDIS_SHARED_MEMORY_PARAMETERS_REVISION_2
为 NDIS 6.30 添加了 VPortId 。
将 Size 成员设置为NDIS_SIZEOF_SHARED_MEMORY_PARAMETERS_REVISION_2。
NDIS_SHARED_MEMORY_PARAMETERS_REVISION_1
NDIS 6.20 的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_SHARED_MEMORY_PARAMETERS_REVISION_1。
Flags
包含以下值的按位 OR 的 UCHAR 值:
NDIS_SHARED_MEM_PARAMETERS_CONTIGOUS
共享内存位于连续的内存块中。
QueueId
包含虚拟机队列 (VMQ) 或单个根 I/O 虚拟化 (SR-IOV) 接收队列标识符的NDIS_RECEIVE_QUEUE_ID值。 此标识符是介于零和微型端口适配器支持的队列数之间的整数。 值 NDIS_DEFAULT_RECEIVE_QUEUE_ID 指定默认接收队列。
SharedMemoryHandle
标识共享内存块的NDIS_HANDLE值。 NDIS 在从 返回之前提供此句柄 NdisAllocateSharedMemory 函数。
PreferredNode
一个 NODE_REQUIREMENT 值,该值指示分配内存时要使用的首选节点。 如果驱动程序没有首选项,则必须将该值设置为 MM_ANY_NODE_OK。
Usage
一个NDIS_SHARED_MEMORY_USAGE枚举值,该值指定共享内存的用途。
Length
一个 ULONG 值,该值包含共享内存块的长度(以字节为单位)。
VirtualAddress
一个 PVOID 值,该值包含共享内存的基虚拟地址。 NDIS 在从 NdisAllocateSharedMemory 函数返回之前提供此值。
SGListBufferLength
一个 ULONG 值,该值包含散点收集列表缓冲区的长度(以字节为单位)。
SGListBuffer
指向 SCATTER_GATHER_LIST 结构的指针。
VPortId
一个 NDIS_NIC_SWITCH_VPORT_ID 值,该值指定要分配共享内存的虚拟端口 (VPort) 标识符。 此值必须是附加到微型端口适配器的物理函数 (PF) 的非默认 VPort 的标识符。
注解
NDIS_SHARED_MEMORY_PARAMETERS 结构为接收队列的共享内存分配请求指定共享内存参数。
NDIS 驱动程序将此结构传递给 NdisAllocateSharedMemory 函数,NDIS 将此结构传递到 netAllocateSharedMemory 函数 (ALLOCATE_SHARED_MEMORY_HANDLER 入口点) 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.20 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |