Generazione di richieste OID da un driver di filtro NDIS
Un driver di filtro può avere origine una query OID o impostare richieste ai driver sottostanti chiamando la funzione NdisFOidRequest .
La figura seguente illustra una richiesta OID originata da un driver di filtro.
Dopo che un driver di filtro chiama la funzione NdisFOidRequest , NDIS chiama la funzione di richiesta del driver sottostante successivo. Per altre informazioni su come un driver miniport gestisce le richieste OID, vedere Richieste OID per un adattatore.
Per completare in modo sincrono, NdisFOidRequest restituisce NDIS_STATUS_SUCCESS o uno stato di errore. Per completare in modo asincrono , NdisFOidRequest restituisce NDIS_STATUS_PENDING.
Per determinare quali informazioni sono state gestite correttamente da un driver sottostante, i driver di filtro che emettono richieste OID devono controllare il valore nel membro SupportedRevision nella struttura NDIS_OID_REQUEST dopo la restituzione della richiesta OID. Per altre informazioni sulla versione di NDIS, vedere Specifica delle informazioni sulla versione di NDIS.
Se NdisFOidRequest restituisce NDIS_STATUS_PENDING, NDIS chiama la funzione FilterOidRequestComplete dopo che i driver sottostanti completano la richiesta OID. In questo caso, NDIS passa i risultati della richiesta al parametro OidRequest di FilterOidRequestComplete. NDIS passa lo stato finale della richiesta al parametro Status di FilterOidRequestComplete.
Se NdisFOidRequest restituisce NDIS_STATUS_SUCCESS, restituisce i risultati di una richiesta di query nella struttura NDIS_OID_REQUEST nel parametro OidRequest . In questo caso, NDIS non chiama la funzione FilterOidRequestComplete .
Un driver può chiamare NdisFOidRequest quando si trova nello stato Restarting, Running, Pausing o Paused .
Nota Un driver di filtro deve tenere traccia delle richieste OID che ha origine e assicurarsi che non chiami la funzione NdisFOidRequestComplete al termine di tali richieste.