NdisAllocateSharedMemory 函数 (ndis.h)

NdisAllocateSharedMemory 函数从共享内存提供程序分配共享内存。

语法

NDIS_STATUS NdisAllocateSharedMemory(
  [in]      NDIS_HANDLE                    NdisHandle,
  [in]      PNDIS_SHARED_MEMORY_PARAMETERS SharedMemoryParameters,
  [in, out] PNDIS_HANDLE                   pAllocationHandle
);

参数

[in] NdisHandle

在调用方初始化期间获取的 NDIS 驱动程序或实例句柄。 例如,微型端口驱动程序可以使用它从 获取的 NDIS 句柄 NdisMRegisterMiniportDriverMiniportInitializeEx 函数。 其他 NDIS 驱动程序可以使用以下函数中的句柄:

NdisRegisterProtocolDriver

NdisOpenAdapterEx

[in] SharedMemoryParameters

指向 的指针 NDIS_SHARED_MEMORY_PARAMETERS 结构,用于定义共享内存的请求属性。

[in, out] pAllocationHandle

指向句柄位置的指针,该句柄标识已分配的共享内存。 当函数返回时,句柄可用;如果函数失败,则句柄为 NULL 。 调用方必须使用此句柄来释放已成功分配的共享内存。

返回值

NdisAllocateSharedMemory 可以返回以下状态值:

返回代码 说明
NDIS_STATUS_SUCCESS
操作已成功完成。
NDIS_STATUS_RESOURCES
操作失败,因为没有足够的资源来完成操作。
NDIS_STATUS_INVALID_PARAMETER
由于输入参数无效,操作失败。
NDIS_STATUS_FAILURE
操作因未指定的原因而失败。

注解

注意 微型端口驱动程序必须已调用 NdisMRegisterScatterGatherDmaNdisMRegisterDmaChannel ,以在调用 NdisAllocateSharedMemory 之前初始化散点/收集 DMA 通道。
 
NDIS 驱动程序调用 NdisAllocateSharedMemory 函数,以从 NDIS 共享内存提供程序分配共享内存块。

SharedMemoryParameters 参数包含指向 的指针 NDIS_SHARED_MEMORY_PARAMETERS 结构,用于定义共享内存的请求属性。 如果未在 Flags 成员中设置NDIS_SHARED_MEM_PARAMETERS_CONTIGUOUS标志,则可以在非连续内存中包含的散点集合列表中指定共享内存。

NDIS 从调用 NdisAllocateSharedMemory 的上下文中调用共享内存提供程序的 NetAllocateSharedMemory 函数。

驱动程序必须调用 NdisFreeSharedMemory 函数来释放它使用 NdisAllocateSharedMemory 分配的共享内存。

要求

要求
最低受支持的客户端 在 NDIS 6.20 及更高版本中受支持。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL

另请参阅

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory