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) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_OID_Function(ndis) |