CoNDIS 微型端口驱动程序 OID 请求

NDIS 调用 CoNDIS 微型端口驱动程序的 MiniportCoOidRequest 函数,以提交 OID 请求以查询或设置驱动程序中的信息。 NDIS 代表自己调用MiniportCoOidRequest,或者代表调用了NdisCoOidRequest函数的上层驱动程序。

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

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

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

微型端口驱动程序可以通过返回成功或失败状态同步完成 OID 请求。 驱动程序可以通过返回NDIS_STATUS_PENDING异步完成 OID 请求。 在这种情况下,驱动程序必须调用 NdisMCoOidRequestComplete 函数才能完成该作。

如果 MiniportCoOidRequest 函数返回 NDIS_STATUS_PENDING,NDIS 可以在挂起的请求尚未完成之前,以适配器的另一个请求再次调用 MiniportCoOidRequest。 应注意,这不同于序列化所有 OID 请求的无连接 NDIS 接口。

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