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_STATUS_SUCCESS
请求作已成功完成。
NDIS_STATUS_PENDING
正在异步处理请求,NDIS 将调用调用方完成请求后, ProtocolCoOidRequestComplete 函数。
NDIS_STATUS_INVALID_OID
OidRequestNDIS_OID_REQUEST 参数的 Oid 成员中指定的 OID_XXX 代码无效或不受基础驱动程序支持。
NDIS_STATUS_INVALID_LENGTH 或NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest 的 NDIS_OID_REQUEST 结构的 InformationBufferLength 成员中指定的值与给定 OID_XXX 代码的要求不匹配。 如果信息缓冲区太小,则当 NdisMCmOidRequest 返回时,NDIS_OID_REQUEST的 BytesNeeded 成员包含 InformationBufferLength的正确值。
NDIS_STATUS_INVALID_DATA
给定 NDIS_OID_REQUEST 结构中 InformationBuffer 提供的数据对于给定的 OID_XXX 代码无效。
NDIS_STATUS_NOT_SUPPORTED 或NDIS_STATUS_NOT_RECOGNIZED
客户端驱动程序不支持请求的作。
NDIS_STATUS_RESOURCES
由于资源短缺,无法满足请求。 通常,此返回值指示尝试分配内存失败,但不一定指示相同的请求(如果稍后提交)将失败。
NDIS_STATUS_FAILURE
此值通常是一个非特定默认值,当未应用更具体的NDIS_STATUS_XXX 状态代码时返回。
NDIS_STATUS_REQUEST_ABORTED
目标驱动程序停止处理请求。

言论

若要向 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 驱动程序还会分别在 NdisVcHandleNdisPartyHandle 参数传递非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)

另请参阅

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete