Share via


Gestione delle richieste OID in un adattatore miniport

NDIS chiama una funzione MiniportOidRequest del driver miniport per inviare una richiesta OID per eseguire una query o impostare le informazioni nel driver. NDIS chiama la funzione MiniportOidRequest per conto proprio o per conto di un driver eccessivamente chiamato la funzione NdisOidRequest o NdisFOidRequest .

NDIS passa MiniportOidRequest a un puntatore a una struttura NDIS_OID_REQUEST che contiene le informazioni sulla richiesta. La struttura della richiesta contiene un identificatore OID_Xxx che indica il tipo di richiesta e altri membri per definire i dati della richiesta.

Il membro Timeout specifica un timeout , espresso in secondi, per la richiesta. NDIS può reimpostare il driver o annullare la richiesta se il timeout scade prima che il driver completi la richiesta.

Il membro RequestId specifica un identificatore facoltativo per la richiesta. I driver Miniport possono impostare il membro RequestId di un'indicazione di stato sul valore ottenuto dal membro RequestId di una richiesta OID associata. In genere, i driver miniport possono ignorare questo membro. Se un driver deve impostare questo membro, la pagina di riferimento per l'OID specifico fornisce i valori necessari. Per altre informazioni sulle indicazioni sullo stato, vedere Indicazioni sullo stato dell'adattatore.

Un driver miniport che gestisce correttamente una richiesta di set OID deve impostare il membro SupportedRevision nella struttura NDIS_OID_REQUEST al momento della restituzione dalla richiesta di set OID. Il membro SupportedRevision notifica all'iniziatore della richiesta della revisione supportata dal driver. Ad esempio, un driver miniport può creare una struttura Xxx_REVISION_2, fornire i valori appropriati per una struttura Xxx_REVISION_1 e riempire il resto della struttura con zeri. Il driver miniport segnala Xxx_REVISION_1 nel membro SupportedRevision . In questo caso, un driver di protocollo in grado di supportare un Xxx_REVISION_2 userà Xxx_REVISION_1 informazioni supportate dal driver miniport. Per altre informazioni sulla versione nelle strutture NDIS, vedere Specifica delle informazioni sulla versione di NDIS.

Un driver miniport può completare una richiesta OID in modo sincrono restituendo uno stato di esito positivo o negativo.

Un driver miniport può completare una richiesta OID in modo asincrono restituendo NDIS_STATUS_PENDING. In questo caso, il driver miniport deve chiamare la funzione NdisMOidRequestComplete per completare l'operazione.

Se MiniportOidRequest restituisce NDIS_STATUS_PENDING, NDIS non chiamerà MiniportOidRequest con un'altra richiesta per l'adattatore fino al completamento della richiesta in sospeso.

NDIS può chiamare la funzione MiniportCancelOidRequest di un driver miniport per annullare una richiesta OID.