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

NDIS 调用微型端口驱动程序的 MiniportOidRequest 函数以提交 OID 请求以查询或设置驱动程序中的信息。 NDIS 代表它自己调用 MiniportOidRequest 函数,或者代表调用 NdisOidRequest 或 NdisFOidRequest 函数的过度驱动程序调用 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 请求。