MINIPORT_SYNCHRONOUS_OID_REQUEST函数 (ndis.h)

NDIS 调用微型端口驱动程序的 MiniportSynchronousOidRequest 回调函数发出同步 OID 请求。

语法

NDIS_STATUS MINIPORT_SYNCHRONOUS_OID_REQUEST(
  [in] NDIS_HANDLE      MiniportAdapterContext,
  [in] NDIS_OID_REQUEST *OidRequest
);

参数

[in] MiniportAdapterContext

微型端口驱动程序在其 MiniportInitializeEx 函数中分配的上下文区域的句柄。 微型端口驱动程序使用此上下文区域来维护微型端口适配器的状态信息。

[in] OidRequest

指向 NDIS_OID_REQUEST 结构的指针,该结构包含要处理的微型端口驱动程序的缓冲区和请求数据包。 根据请求,驱动程序返回所提供的结构中请求的信息。

返回值

MiniportSynchronousOidRequest 可以返回以下状态值之一:

返回代码 描述
NDIS_STATUS_SUCCESS
微型端口驱动程序按请求设置或获取数据。
NDIS_STATUS_INVALID_OID
指定 OidRequest 的请求无效或无法识别。
NDIS_STATUS_NOT_SUPPORTED
已识别 OidRequest 的请求,但微型端口驱动程序不支持它。
NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest 提供的缓冲区太小,无法保存请求的数据。
NDIS_STATUS_INVALID_LENGTH
OidRequestInformationBufferLength NDIS_OID_REQUEST 成员中指定的值对于指定的 OID_Xxx 代码不正确。
NDIS_STATUS_INVALID_DATA
OidRequest 为请求指定的一个或多个参数无效。
NDIS_STATUS_INDICATION_REQUIRED
微型端口驱动程序将提供具有后续状态指示的 OID 完成状态。 微型端口驱动程序无法返回NDIS_STATUS_INDICATION_REQUIRED,除非特定的 OID 允许它。 若要确定是否允许此状态,请参阅 OID 参考页。 有关NDIS_STATUS_INDICATION_REQUIRED的详细信息,请参阅 NDIS_OID_REQUESTNDIS_STATUS_INDICATION
NDIS_STATUS_NOT_ACCEPTED
调用 MiniportDevicePnPEventNotify 函数指示意外删除,NDIS 称为驱动程序的 MiniportHaltEx 函数。 如果驱动程序在 NDIS 调用 MiniportHaltEx之前收到任何 OID 请求,则应立即完成状态值为 NDIS_STATUS_NOT_ACCEPTED 的此类请求。

在意外删除后,微型端口驱动程序并不总是需要为所有 OID 返回NDIS_STATUS_NOT_ACCEPTED,但这样做有助于解释呼叫失败的原因。

言论

MiniportSynchronousOidRequest 是一个可选函数。 微型端口驱动程序在处理同步 OID 请求时注册此函数。 驱动程序使用 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 结构的 SyncOidRequesthandler 成员,指定 MiniportSynchronousOidRequest 入口点时调用 NdisMRegisterMiniportDriver 函数。

微型端口驱动程序不得从 MiniportSynchronousOidRequest 返回NDIS_STATUS_PENDING或NDIS_STATUS_REQUEST_ABORTED。 无法对同步 OID 请求进行笔写或取消。

在 NDIS 调用 MiniportDevicePnPEventNotify 通知驱动程序意外删除后,微型端口驱动程序可能会返回NDIS_STATUS_NOT_ACCEPTED。 但是,如果可以这样做,微型端口驱动程序仍可能使用其他状态代码完成 OID 请求。 有关详细信息,请参阅每个 OID 的特定文档。

微型端口驱动程序应快速完成同步 OID 请求,而无需阻止、等待或睡觉。 同步 OID 请求仅用于低延迟作,微型端口驱动程序应努力在几毫秒内完成这些请求。 大多数 OID 请求都传送到 MiniportOidRequest,该请求允许暂停或等待较长的持续时间。

NDIS 不会针对彼此序列化同步 OID 请求、针对其他 OID 请求、MiniportPauseMiniportResetEx或电源转换。 微型端口驱动程序负责实现自己的同步,并失败在无法成功处理请求时传递的请求。

NDIS 针对 MiniportHaltEx序列化同步 OID 请求;NDIS 保证在调用 MiniportHaltEx 时,不会激活同步 OID 请求。

实现 NDIS 选择性挂起的微型端口驱动程序与同步 OID 不兼容,并且不得注册 MiniportSynchronousOidRequest 处理程序。

要求

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

另请参阅

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

NDIS_MINIPORT_DRIVER_CHARACTERISTICS

NDIS_OID_REQUEST

NDIS_STATUS_INDICATION

NdisMRegisterMiniportDriver

在 NDIS 6.80 同步 OID 请求接口