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 来初始化散点/收集 DMA 通道,然后再调用 NdisAllocateSharedMemory
 
NDIS 驱动程序调用 NdisAllocateSharedMemory 函数,以便从 NDIS 共享内存提供程序分配共享内存块。

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

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

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

要求

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

另请参阅

FilterAttach

MiniportInitializeEx

NDIS_SHARED_MEMORY_PARAMETERS

NdisFRegisterFilterDriver

NdisFreeSharedMemory

NdisMRegisterDmaChannel

NdisMRegisterMiniportDriver

NdisMRegisterScatterGatherDma

NdisOpenAdapterEx

NdisRegisterProtocolDriver

NetAllocateSharedMemory