Share via


Generazione di richieste OID da un driver di protocollo NDIS

Per originare una richiesta OID ai driver sottostanti, un protocollo chiama la funzione NdisOidRequest .

La figura seguente illustra una richiesta OID originata da un driver di protocollo.

Diagramma che illustra una richiesta OID originata da un driver di protocollo.

Dopo che un driver di protocollo chiama la funzione NdisOidRequest, NDIS chiama la funzione richiesta del driver sottostante successivo. Per altre informazioni sul modo in cui un driver miniport gestisce le richieste OID, vedere Richieste OID per un adattatore. Per altre informazioni sul modo in cui un driver di filtro gestisce le richieste OID, vedere Filtra richieste OID del modulo.

Per completare in modo sincrono, NdisOidRequest restituisce NDIS_STATUS_SUCCESS o uno stato di errore. Per completare in modo asincrono, NdisOidRequest restituisce NDIS_STATUS_PENDING.

Se NdisOidRequest restituisce NDIS_STATUS_PENDING, NDIS chiama la funzione ProtocolOidRequestComplete dopo il completamento della richiesta OID sottostante. In questo caso, NDIS passa i risultati della richiesta al parametro OidRequest di ProtocolOidRequestComplete. NDIS passa lo stato finale della richiesta al parametro Status di ProtocolOidRequestComplete.

Se NdisOidRequest 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 ProtocolOidRequestComplete .

Per determinare quali informazioni sono state gestite correttamente da un driver sottostante, i driver di protocollo che generano richieste OID devono controllare il valore nel membro SupportedRevision nella struttura NDIS_OID_REQUEST dopo che la richiesta OID restituisce. Per altre informazioni sulle informazioni sulla versione di NDIS, vedere Specifica delle informazioni sulla versione di NDIS.

Se il driver sottostante deve associare la richiesta OID a un'indicazione di stato successiva, il driver del protocollo deve impostare il membro RequestId nella struttura NDIS_OID_REQUEST. Quando il driver sottostante indica lo stato, imposta il membro RequestId nella struttura NDIS_STATUS_INDICATION sul valore fornito nella richiesta OID.

Un driver può chiamare NdisOidRequest quando un'associazione si trova nello stato Riavvia, Esecuzione, Sospensione o Sospensione .