Funzione NdisOidRequest (ndis.h)
La funzione NdisOidRequest inoltra una richiesta ai driver sottostanti per eseguire query sulle funzionalità o sullo stato di un adattatore o impostare lo stato di un adattatore.
Sintassi
NDIS_STATUS NdisOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parametri
[in] NdisBindingHandle
Handle restituito dalla funzione NdisOpenAdapterEx che identifica l'adapter di destinazione nell'associazione.
[in] OidRequest
Puntatore a una struttura NDIS_OID_REQUEST che specifica l'operazione richiesta con un determinato codice OID_XXX per eseguire query sullo stato di un adattatore o per impostare lo stato di un adattatore.
Valore restituito
Il driver sottostante determina quale codice NDIS_STATUS_XXXNdisOidRequest restituisce, ma in genere è uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Operazione di richiesta completata correttamente. |
|
La richiesta viene gestita in modo asincrono e NDIS chiamerà il chiamante Funzione ProtocolOidRequestComplete al termine della richiesta. |
|
Il codice OID_XXX specificato nel membro Oid del buffer strutturato NDIS_OID_REQUEST in OidRequest non è valido o non supportato dal driver sottostante. |
|
Il valore specificato nel membro InformationBufferLength del buffer strutturato NDIS_OID_REQUEST in OidRequest non corrisponde ai requisiti per il codice OID_ XXX specificato. Se il buffer delle informazioni è troppo piccolo, il membro BytesNeededed contiene il valore corretto per InformationBufferLength sulla restituzione da NdisOidRequest. |
|
I dati forniti in InformationBuffer nella struttura NDIS_OID_REQUEST specificata non sono validi per il codice OID_ XXX specificato. |
|
Il driver sottostante non supporta l'operazione richiesta. |
|
Impossibile soddisfare la richiesta a causa di una carenza di risorse. In genere, questo valore restituito indica che un tentativo di allocare memoria non è riuscito, ma non indica necessariamente che la stessa richiesta, inviata in seguito, non sarà riuscita per lo stesso motivo. |
|
Il driver sottostante ha tentato l'operazione richiesta, in genere un set su una scheda di interfaccia di rete, ma non è riuscito. Ad esempio, un tentativo di impostare troppi indirizzi multicast potrebbe causare la restituzione di questo valore. |
|
Il driver sottostante ha avuto esito negativo sull'operazione richiesta perché un'operazione di chiusura è in corso. |
|
Il driver miniport sottostante non può soddisfare la richiesta in questo momento perché è attualmente reimpostata la scheda di interfaccia di rete interessata. La funzione ProtocolStatusEx del chiamante è stata o verrà chiamata con NDIS_STATUS_RESET_START per indicare che è in corso una reimpostazione. Questo valore restituito non indica necessariamente che la stessa richiesta, inviata in un secondo momento, non sarà riuscita per lo stesso motivo. |
|
Questo valore è in genere un valore predefinito non specifico, restituito quando nessuna delle NDIS_STATUS_XXX più specifiche ha causato l'esito negativo della richiesta del driver sottostante. |
Commenti
Un driver di protocollo deve allocare memoria sufficiente per contenere il buffer di informazioni associato all'OID specificato. Il driver deve anche allocare e configurare il buffer in OidRequest prima di chiama NdisOidRequest. Entrambi i buffer devono essere allocati da un pool non con pagine perché il driver sottostante viene eseguito in irQL generato durante l'elaborazione della richiesta.
NdisOidRequest inoltra una richiesta ai driver sottostanti o gestisce la richiesta stessa. Se il driver inferiore successivo è un driver intermedio NDIS, può chiamare NdisOidRequest con una richiesta specifica OID del proprio prima di completare la richiesta originariamente inviata dal driver di livello superiore.
Alcuni errori restituiti sono recuperabili, inclusi i seguenti:
Vale a dire, un driver può modificare il pacchetto in OidRequest in modo appropriato per correggere il codice OID_ XXX o le dimensioni o il contenuto del buffer in InformationBuffer e inviare di nuovo il pacchetto di richiesta a NdisOidRequest. Lo stesso pacchetto potrebbe essere soddisfatto per la resubmissione a NdisOidRequest se la chiamata originale indicava una reimpostazione in corso o che una carenza di risorse, che potrebbe essere temporanea, impedisce che tale richiesta venga eseguita.
La libreria NDIS gestisce le associazioni per i driver miniport sottostanti. NDIS può restituire informazioni per le query specifiche dell'associazione se un determinato OID è associato a un tipo medio definito dal sistema per cui il sistema fornisce una libreria di filtri.
Per altre informazioni sugli OID generali e specifici dei supporti e sui rispettivi buffer di informazioni associati, vedere NDIS OID.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Intestazione | ndis.h (includere Ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | Irql_OID_Function(ndis) |