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 结构。
微型端口驱动程序必须将 标头 的 类型 成员设置为NDIS_OBJECT_TYPE_DEFAULT。 若要指定NDIS_SHARED_MEMORY_PARAMETERS结构的版本,驱动程序必须将 Revision 成员 标头 设置为以下值之一:
NDIS_SHARED_MEMORY_PARAMETERS_REVISION_2
为 NDIS 6.30 添加了 VPortId。
将 大小 成员设置为NDIS_SIZEOF_SHARED_MEMORY_PARAMETERS_REVISION_2。
NDIS_SHARED_MEMORY_PARAMETERS_REVISION_1
NDIS 6.20 的原始版本。
将 大小 成员设置为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) |