处理微型端口适配器中的 OID 请求

NDIS 调用微型端口驱动程序的 MiniportOidRequest 函数来提交 OID 请求,以查询或设置驱动程序中的信息。 NDIS 自行或代表调用NdisOidRequestNdisFOidRequest函数的过量驱动程序调用MiniportOidRequest函数。

NDIS 传递 MiniportOidRequest 一个指向包含请求信息的 NDIS_OID_REQUEST 结构的指针。 请求结构包含一个 OID_Xxx 标识符,该标识符指示请求的类型以及用于定义请求数据的其他成员。

Timeout 成员指定请求的超时 (以秒为单位)。 如果超时在驱动程序完成请求之前过期,NDIS 可以重置驱动程序或取消请求。

RequestId成员指定请求的可选标识符。 微型端口驱动程序可以将状态指示的 requestid 成员设置为从关联 OID 请求的 requestid 成员获取的值。 通常,微型端口驱动程序可以忽略此成员。 如果驱动程序必须设置此成员,则特定 OID 的 "引用" 页将提供所需的值。 有关状态指示的详细信息,请参阅 适配器状态指示

成功处理 OID 集请求的微型端口驱动程序必须在从 OID 集请求返回时设置NDIS_OID_REQUEST结构中的SupportedRevision成员。 SupportedRevision成员向发起方通知驱动程序所支持的修订版本。 例如,微型端口驱动程序可以创建 Xxx_REVISION_2 结构,提供适合于 Xxx_REVISION_1 结构的值,并使用零填充结构的其余部分。 微型端口驱动程序会在 SupportedRevision 成员中报告 Xxx_REVISION_1。 在这种情况下,可以支持 Xxx_REVISION_2 的协议驱动程序将使用微型端口驱动程序所支持的 Xxx_REVISION_1 信息。 有关 NDIS 结构中的版本信息的详细信息,请参阅 指定 Ndis 版本信息

微型端口驱动程序可以通过返回成功或失败状态来同步完成 OID 请求。

微型端口驱动程序可以通过返回 NDIS_STATUS_PENDING 来异步完成 OID 请求。 在这种情况下,微型端口驱动程序必须调用 NdisMOidRequestComplete 函数来完成该操作。

如果 MiniportOidRequest 返回 NDIS_STATUS_PENDING,则在完成挂起的请求之前,NDIS 不会调用 MiniportOidRequest 的另一个请求。

NDIS 可以调用微型端口驱动程序的 MiniportCancelOidRequest 函数来取消 OID 请求。