Condividi tramite


Richieste OID del driver del protocollo CoNDIS

I driver di protocollo CoNDIS, client o gestori chiamate, possono eseguire query o impostare i parametri operativi dei driver miniport e di altri driver di protocollo. I driver di protocollo CoNDIS possono anche eseguire query o impostare informazioni nei gestori di chiamate miniport.CoNDIS protocol drivers can also query or set information in miniport call manager (MCMs). Per altre informazioni sulle richieste OID e sulle MCM, vedere Richieste OID MCM CoNDIS.

Per avere origine una richiesta OID a un driver sottostante, un driver di protocollo chiama la funzione NdisCoOidRequest e imposta l'handle della famiglia di indirizzi (AF), in corrispondenza del parametro NdisAfHandle , su NULL. Per avere origine una richiesta OID a un altro driver di protocollo CoNDIS, un driver di protocollo chiama NdisCoOidRequest e fornisce un handle af valido.

Dopo che un driver di protocollo chiama la funzione NdisCoOidRequest , NDIS chiama la funzione di richiesta OID dell'altro driver (un driver sottostante o un altro driver del protocollo CoNDIS). Per i driver miniport, NDIS chiama la funzione MiniportCoOidRequest . Per i driver di protocollo, NDIS chiama la funzione ProtocolCoOidRequest .

La figura seguente illustra una richiesta OID indirizzata a un driver miniport.

Diagramma che illustra una richiesta OID indirizzata a un driver miniport.

La figura seguente illustra una richiesta OID indirizzata a un driver di protocollo.

Diagramma che illustra una richiesta OID indirizzata a un driver di protocollo.

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

Se NdisCoOidRequest restituisce NDIS_STATUS_PENDING, NDIS chiama la funzione ProtocolCoOidRequestComplete dopo che l'altro driver completa la richiesta OID chiamando la funzione NdisMCoOidRequestComplete o la funzione NdisCoOidRequestComplete . In questo caso, NDIS passa i risultati della richiesta al parametro OidRequest di ProtocolCoOidRequestComplete. NDIS passa lo stato finale della richiesta nel parametro Status di ProtocolCoOidRequestComplete.

Se NdisCoOidRequest restituisce NDIS_STATUS_SUCCESS, restituisce i risultati di una richiesta di query nella struttura NDIS_OID_REQUEST nei punti del parametro OidRequest . In questo caso, NDIS non chiama la funzione ProtocolCoOidRequestComplete .

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

Un driver può chiamare NdisCoOidRequest quando un'associazione si trova nello stato Restarting, Running, Pausing o Paused .