NdisSynchronousOidRequest 函数 (ndis.h)

协议驱动程序调用 NdisSynchronousOidRequest 函数来发起新的同步 OID 请求并将其颁发给基础驱动程序。

语法

NDIS_STATUS NdisSynchronousOidRequest(
  [in] NDIS_HANDLE      NdisBindingHandle,
  [in] NDIS_OID_REQUEST *OidRequest
);

参数

[in] NdisBindingHandle

NdisOpenAdapterEx 函数返回的句柄,用于标识绑定上的目标微型端口适配器。

[in] OidRequest

指向 NDIS_OID_REQUEST 结构的指针,该结构指定使用给定的 OID_Xxx 代码请求的作。 该结构可以指定 OID 查询、集或方法请求。

返回值

基础驱动程序确定NDIS_STATUS_XXX 代码 NdisSynchronousOidRequest 返回,但通常是以下值之一:

返回代码 描述
NDIS_STATUS_SUCCESS
请求作已成功完成。
NDIS_STATUS_INVALID_OID
OidRequestOidNDIS_OID_REQUEST成员中指定的 OID_Xxx 代码无效或不受基础驱动程序支持。
NDIS_STATUS_INVALID_LENGTH 或NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest 的 NDIS_OID_REQUEST 结构化缓冲区的 InformationBufferLength 成员中指定的值与给定 OID_Xxx 代码的要求不匹配。 如果信息缓冲区太小,则 BytesNeeded 成员在从 NdisSynchronousOidRequest返回时,InformationBufferLength 包含正确的值。
NDIS_STATUS_INVALID_DATA
给定NDIS_OID_REQUEST结构中 InformationBuffer 提供的数据对于给定的 OID_Xxx 代码无效。
NDIS_STATUS_NOT_SUPPORTED 或NDIS_STATUS_NOT_RECOGNIZED
基础驱动程序不支持请求的作。
NDIS_STATUS_RESOURCES
由于资源短缺,无法满足请求。 通常,此返回值指示尝试分配内存失败,但不一定指示以后提交的相同请求将失败,原因相同。
NDIS_STATUS_NOT_ACCEPTED
基础驱动程序尝试了请求的作,通常是 NIC 上的集,但它失败。 例如,尝试设置过多的多播地址可能会导致返回此值。
NDIS_STATUS_CLOSING 或NDIS_STATUS_CLOSING_INDICATING
基础驱动程序由于正在执行关闭作而失败请求的作。
NDIS_STATUS_RESET_IN_PROGRESS
基础微型端口驱动程序目前无法满足请求,因为它当前正在重置受影响的 NIC。 调用方 ProtocolStatusEx 函数或将使用NDIS_STATUS_RESET_START调用,以指示重置正在进行。 此返回值不一定指示同一请求(稍后提交)将因相同原因而失败。
NDIS_STATUS_FAILURE
此值通常是非特定默认值,当没有更具体的NDIS_STATUS_Xxx 值导致基础驱动程序失败请求时返回。

言论

NdisSynchronousOidRequest 函数不能用于常规 OID 请求。 对于常规 OID 请求,请改用 NdisOidRequest 函数。 NdisSynchronousOidRequest 只能用于 NDIS 支持用于同步 OID 接口的 OID。 大多数协议驱动程序不需要调用 NdisSynchronousOidRequest

在协议驱动程序发起的任何同步 OID 请求完成之前,协议驱动程序不得关闭适配器绑定。

协议驱动程序不需要实现 ProtocolOidRequestCompleteProtocolDirectOidRequestComplete 才能调用 NdisSynchronousOidRequest。 顾名思义,同步 OID 请求始终同步完成,因此没有异步回调。

要求

要求 价值
最低支持的客户端 Windows 10 版本 1709
目标平台 普遍
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL <= DISPATCH_LEVEL

另请参阅

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx