Compartilhar via


Solicitações OID do Driver de Protocolo CoNDIS

Os drivers de protocolo CoNDIS, clientes ou gerenciadores de chamadas, podem consultar ou definir os parâmetros operacionais de drivers de miniporte e outros drivers de protocolo. Os drivers de protocolo CoNDIS também podem consultar ou definir informações em MCMs (gerenciadores de chamadas de miniporto). Para obter mais informações sobre solicitações OID e MCMs, consulte Solicitações OID do MCM do CoNDIS.

Para originar uma solicitação OID para um driver subjacente, um driver de protocolo chama a função NdisCoOidRequest e define o identificador af (família de endereços), no parâmetro NdisAfHandle , como 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 solicitação OID do outro driver (um driver subjacente ou outro driver de protocolo CoNDIS). Para drivers de miniporta, 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 erro status. Para ser concluído de forma assíncrona, NdisCoOidRequest retorna NDIS_STATUS_PENDING.

Se NdisCoOidRequest retornar NDIS_STATUS_PENDING, o NDIS chamará a função ProtocolCoOidRequestComplete depois que o outro driver concluir a solicitação OID chamando a função NdisMCoOidRequestComplete ou a função NdisCoOidRequestComplete . Nesse caso, o NDIS passa os resultados da solicitação no parâmetro OidRequest de ProtocolCoOidRequestComplete. O NDIS passa a 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 nos pontos de parâmetro OidRequest . Nesse caso, o NDIS não chama a função ProtocolCoOidRequestComplete .

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

Um driver pode chamar NdisCoOidRequest quando uma associação está no estado Reiniciando, Executando, Pausando ou Pausado .