Funzione NdisDirectOidRequest (ndis.h)
La funzione NdisDirectOidRequest inoltra una richiesta OID diretta ai driver sottostanti per eseguire query sulle funzionalità o sullo stato di un adattatore o impostare lo stato di un adattatore.
Sintassi
NDIS_STATUS NdisDirectOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parametri
[in] NdisBindingHandle
Handle restituito dalla funzione NdisOpenAdapterEx che identifica l'adattatore miniport 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_XXXNdisDirectOidRequest 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 ProtocolDirectOidRequestComplete 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 era troppo piccolo, il membro BytesNeededed contiene il valore corretto per InformationBufferLength sul ritorno da NdisDirectOidRequest. |
|
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. Per NdisDirectOidRequest, NDIS può anche restituire questo stato se il driver chiamante non ha registrato un Funzione ProtocolDirectOidRequestComplete . |
|
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 nessuno dei valori NDIS_STATUS_Xxx più specifici ha causato l'esito negativo della richiesta del driver sottostante. |
Commenti
Impossibile usare la funzione NdisDirectOidRequest per le richieste OID generali. Per le richieste OID generali, usare invece la funzione NdisOidRequest . NdisDirectOidRequest può essere usato solo per gli OID supportati da NDIS per l'uso con l'interfaccia OID diretta. Ad esempio, è possibile usare gli OID seguenti:
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SAUn 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 nel parametro OidRequest prima di chiama NdisDirectOidRequest. 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.
NdisDirectOidRequest inoltra una richiesta ai driver sottostanti o gestisce la richiesta stessa. Se il driver inferiore successivo è un driver intermedio NDIS, il driver intermedio può chiamare NdisDirectOidRequest con una richiesta specifica OID del proprio prima di completare la richiesta che il driver di livello superiore ha originariamente inviato.
Un driver che chiama NdisDirectOidRequest deve registrare Funzione ProtocolDirectOidRequestComplete .
L'interfaccia della richiesta OID diretta è simile all'interfaccia di richiesta OID generale. Per altre informazioni sull'emissione di richieste generali, vedere NdisOidRequest.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.1 e versioni successive. |
Piattaforma di destinazione | Desktop |
Intestazione | ndis.h (includere Ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |