Gerando solicitações OID de um driver de filtro NDIS
Um driver de filtro pode originar a consulta OID ou definir solicitações para drivers subjacentes chamando a função NdisFOidRequest .
A figura a seguir ilustra uma solicitação OID originada por um driver de filtro.
Depois que um driver de filtro chama a função NdisFOidRequest , o NDIS chama a função de solicitação do próximo driver subjacente. Para obter mais informações sobre como um driver de miniporto lida com solicitações OID, consulte Solicitações de OID para um adaptador.
Para concluir de forma síncrona, NdisFOidRequest retorna NDIS_STATUS_SUCCESS ou um erro status. Para concluir de forma assíncrona, NdisFOidRequest retorna NDIS_STATUS_PENDING.
Para determinar quais informações foram tratadas com êxito por um driver subjacente, os drivers de filtro que emitem solicitações OID devem marcar o valor no membro SupportedRevision na estrutura NDIS_OID_REQUEST após o retorno da solicitação OID. Para obter mais informações sobre informações de versão do NDIS, consulte Especificando informações de versão do NDIS.
Se NdisFOidRequest retornar NDIS_STATUS_PENDING, o NDIS chamará a função FilterOidRequestComplete depois que os drivers subjacentes concluirem a solicitação OID. Nesse caso, o NDIS passa os resultados da solicitação no parâmetro OidRequest de FilterOidRequestComplete. O NDIS passa a status final da solicitação no parâmetro Status de FilterOidRequestComplete.
Se NdisFOidRequest 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 FilterOidRequestComplete .
Um driver pode chamar NdisFOidRequest quando estiver no estado Reiniciando, Executando, Pausando ou Pausado .
Nota Um driver de filtro deve controlar as solicitações OID originadas e garantir que ele não chame a função NdisFOidRequestComplete quando essas solicitações forem concluídas.