Solicitações de OID do driver de protocolo CoNDIS

Os drivers de protocolo CoNDIS, sejam clientes ou gestores de chamadas, podem interrogar ou definir os parâmetros operacionais dos drivers de miniportas e de outros drivers de protocolo. Os drivers de protocolo CoNDIS também podem consultar ou definir informações em gerenciadores de chamadas de miniporta (MCMs). Para obter mais informações sobre solicitações OID e MCMs, consulte CoNDIS MCM OID Requests.

Para originar uma solicitação OID para um driver subjacente, um driver de protocolo chama a função NdisCoOidRequest e define o identificador da família de endereços (AF), no parâmetro NdisAfHandle, para NULL. Para originar uma solicitação OID para outro driver de protocolo CoNDIS, um driver de protocolo chama NdisCoOidRequest e fornece um identificador AF válido.

Depois que um driver de protocolo chama a função NdisCoOidRequest, o NDIS chama a função de pedido de OID do outro driver (um driver subjacente ou outro driver de protocolo CoNDIS). Para drivers de miniportas, o NDIS chama a função MiniportCoOidRequest. Para drivers de protocolo, o NDIS chama a função ProtocolCoOidRequest.

A figura a seguir ilustra uma solicitação OID direcionada a um driver de miniporta.

Diagrama ilustrando uma solicitação OID direcionada a um driver de miniporta.

A figura a seguir ilustra uma solicitação OID direcionada a um driver de protocolo.

Diagrama ilustrando uma solicitação OID direcionada a um driver de protocolo.

Para concluir de forma síncrona, NdisCoOidRequest retorna NDIS_STATUS_SUCCESS ou um status de erro. Para concluir de forma assíncrona, NdisCoOidRequest retorna NDIS_STATUS_PENDING.

Se NdisCoOidRequest retornar NDIS_STATUS_PENDING, o NDIS chamará a função ProtocolCoOidRequestComplete após a conclusão da solicitação OID pelo outro driver, chamando a função NdisMCoOidRequestComplete ou a função NdisCoOidRequestComplete. Nesse caso, o NDIS transfere os resultados do pedido para o parâmetro OidRequest de ProtocolCoOidRequestComplete. O NDIS passa o status final da solicitação no parâmetro Status de ProtocolCoOidRequestComplete.

Se NdisCoOidRequest retornar NDIS_STATUS_SUCCESS, ele retornará os resultados de uma solicitação de consulta na estrutura NDIS_OID_REQUEST no parâmetro OidRequest. Nesse caso, o NDIS não chama a função ProtocolCoOidRequestComplete.

Se um driver subjacente deve associar a solicitação de OID a uma indicação de estado subsequente, o driver de protocolo deve definir os membros RequestId e RequestHandle na estrutura NDIS_OID_REQUEST. Se o driver subjacente fizer uma indicação de status, o driver definirá o membro RequestId na estrutura NDIS_STATUS_INDICATION para o valor do RequestId membro da estrutura NDIS_OID_REQUEST e o membro DestinationHandle na estrutura NDIS_STATUS_INDICATION para o valor do RequestHandle membro da estrutura NDIS_OID_REQUEST.

Um driver pode chamar NdisCoOidRequest quando uma vinculação estiver no estado Reiniciando, Executando, Pausandoou Pausado.