NdisAllocateCloneOidRequest 函数 (ndis.h)

NdisAllocateCloneOidRequest 函数为新的NDIS_OID_REQUEST结构分配内存,并将现有NDIS_OID_REQUEST结构中的所有信息复制到新分配的结构。

语法

NDIS_STATUS NdisAllocateCloneOidRequest(
  [in] IN NDIS_HANDLE        SourceHandle,
       IN PNDIS_OID_REQUEST  OidRequest,
  [in] IN UINT               PoolTag,
       OUT PNDIS_OID_REQUEST *ClonedOidRequest
);

参数

[in] SourceHandle

标识筛选器模块或中间驱动程序的协议绑定的 NDIS 句柄。

OidRequest

指向现有 NDIS_OID_REQUEST 结构的指针,NDIS 从该结构中将信息复制到新分配的结构。

[in] PoolTag

内核池标记。 标记是一个字符串,由单引号分隔,包含多达四个字符,通常按相反的顺序指定。

ClonedOidRequest

指向指向NDIS_OID_REQUEST结构的指针的指针。 如果 NDIS 返回NDIS_STATUS_SUCCESS,则 NDIS 会提供指向新的克隆NDIS_OID_REQUEST结构的指针;否则,NDIS 会将指针值设置为 NULL

返回值

NdisAllocateClonedRequest 可以返回以下状态值之一:

返回代码 说明
NDIS_STATUS_SUCCESS
NDIS 已成功分配NDIS_OID_REQUEST结构。 CloneRequest 参数包含指向 NDIS_OID_REQUEST 结构的指针。
NDIS_STATUS_INVALID_PARAMETER
分配请求失败,因为在 SourceHandle 中指定的 NDIS 句柄无效。
NDIS_STATUS_RESOURCES
分配请求失败,因为 NDIS 没有足够的资源来完成分配请求。
NDIS_STATUS_FAILURE
驱动程序无法分配克隆的结构,原因除上述列表中的原因外。

注解

若要将请求向下转发到基础驱动程序,NDIS 中间驱动程序或筛选器驱动程序必须调用 NdisAllocateCloneOidRequest 来分配克隆 NDIS_OID_REQUEST 结构。 筛选器驱动程序或中间驱动程序不应将原始NDIS_OID_REQUEST结构转发到基础驱动程序。

NdisAllocateCloneOidRequest 分配新内存,并将现有NDIS_OID_REQUEST结构中的数据复制到新结构。

驱动程序随后必须调用 NdisFreeCloneOidRequest 函数来释放NDIS_OID_REQUEST结构。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_OID_Function (ndis)

另请参阅

NDIS_OID_REQUEST

NdisFreeCloneOidRequest