NdisMCmOidRequest 函数 (ndis.h)
NdisMCmOidRequest 函数将 OID 请求从微型端口调用管理器 (MCM) 驱动程序发送到 CoNDIS 客户端。
语法
NDIS_STATUS NdisMCmOidRequest(
[in] NDIS_HANDLE NdisAfHandle,
[in, optional] NDIS_HANDLE NdisVcHandle,
[in, optional] NDIS_HANDLE NdisPartyHandle,
PNDIS_OID_REQUEST NdisOidRequest
);
参数
[in] NdisAfHandle
一个句柄,用于标识 OID 请求定向到的地址系列(AF)和隐式客户端。 MCM 驱动程序最初作为其 ProtocolCmOpenAf 函数的输入参数获取此句柄。
[in, optional] NdisVcHandle
一个句柄,用于标识调用方请求或设置其信息的虚拟连接(VC),如果请求特定于 VC。 否则,如果此请求不特定于 VC,则此参数 NULL。 对于任何特定于 VC 的请求,调用方最初在使用 NdisMCmCreateVc 函数创建 VC 时,或者作为其 ProtocolCoCreateVc 函数的输入参数获取此句柄。
[in, optional] NdisPartyHandle
一个句柄,用于标识调用方请求或设置其信息(如果请求特定于群)的多点 VC 上的参与方。 否则,如果此请求不是特定于方,则此参数 NULL。 对于任何特定于参与方的请求,MCM 驱动程序最初将此句柄作为其 ProtocolCmAddParty 函数的输入参数获取。
NdisOidRequest
指向包含 NDIS_OID_REQUEST 结构的调用方分配缓冲区的指针。
返回值
NdisMCmOidRequest 返回以下值之一:
返回代码 | 描述 |
---|---|
|
请求作已成功完成。 |
|
正在异步处理请求,NDIS 将调用调用方完成请求后, ProtocolCoOidRequestComplete 函数。 |
|
在 OidRequestNDIS_OID_REQUEST 参数的 Oid 成员中指定的 OID_XXX 代码无效或不受基础驱动程序支持。 |
|
在 OidRequest 的 NDIS_OID_REQUEST 结构的 InformationBufferLength 成员中指定的值与给定 OID_XXX 代码的要求不匹配。 如果信息缓冲区太小,则当 NdisMCmOidRequest 返回时,NDIS_OID_REQUEST的 BytesNeeded 成员包含 InformationBufferLength的正确值。 |
|
给定 NDIS_OID_REQUEST 结构中 InformationBuffer 提供的数据对于给定的 OID_XXX 代码无效。 |
|
客户端驱动程序不支持请求的作。 |
|
由于资源短缺,无法满足请求。 通常,此返回值指示尝试分配内存失败,但不一定指示相同的请求(如果稍后提交)将失败。 |
|
此值通常是一个非特定默认值,当未应用更具体的NDIS_STATUS_XXX 状态代码时返回。 |
|
目标驱动程序停止处理请求。 |
言论
若要向 CoNDIS 客户端启动 OID 请求,MCM 驱动程序调用 NdisMCmOidRequest 函数。 在 MCM 驱动程序调用 NdisMCmOidRequest之前,驱动程序会为其请求分配内存并初始化 NDIS_OID_REQUEST 结构。 MCM 使用 CoNDIS OID 代码设置NDIS_OID_REQUEST结构的 Oid 成员。
MCM 驱动程序可以调用 NdisMCmOidRequest 来传达面向连接的信息,例如 NdisAfHandle 参数标识的客户端地址更改。
MCM 调用 NdisMCmOidRequest后,NDIS 将调用客户端的 ProtocolCoOidRequest 函数。
如果 MCM 驱动程序的请求特定于 VC 或特定于群,则 MCM 驱动程序还会分别在 NdisVcHandle 或 NdisPartyHandle 参数传递非NULL 值。
如果 NdisMCmOidRequest 返回NDIS_STATUS_PENDING,则异步处理请求,NDIS 将调用 MCM完成请求后, ProtocolCoOidRequestComplete 函数。 如果 NdisMCmOidRequest 返回任何其他状态,则当 NdisMCmOidRequest 返回时,请求将完成,NDIS 不会调用 ProtocolCoOidRequestComplete。
有关定义为与 NdisMCmOidRequest一起使用的 OID 的详细信息,请参阅 NDIS OID。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.0 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_MCM_Function(ndis) |