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 已成功分配NDIS_OID_REQUEST结构。 CloneRequest 参数包含指向 NDIS_OID_REQUEST 结构的指针。 |
|
分配请求失败,因为在 SourceHandle 中指定的 NDIS 句柄无效。 |
|
分配请求失败,因为 NDIS 没有足够的资源来完成分配请求。 |
|
驱动程序无法分配克隆的结构,原因除上述列表中的原因外。 |
注解
若要将请求向下转发到基础驱动程序,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) |