Condividi tramite


MINIPORT_CO_OID_REQUEST funzione di callback (ndis.h)

La funzione MiniportCoOidRequest gestisce una richiesta OID per eseguire query o impostare informazioni nel driver miniport CoNDIS.

Nota È necessario dichiarare la funzione usando il tipo di MINIPORT_CO_OID_REQUEST . Per altre informazioni, vedere la sezione Esempi seguenti.
 

Sintassi

MINIPORT_CO_OID_REQUEST MiniportCoOidRequest;

NDIS_STATUS MiniportCoOidRequest(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] NDIS_HANDLE MiniportVcContext,
       PNDIS_OID_REQUEST NdisRequest
)
{...}

Parametri

[in] MiniportAdapterContext

Handle in un'area di contesto allocata dal driver miniport nella funzione MiniportInitializeEx . Il driver miniport usa questa area di contesto per mantenere le informazioni sullo stato per un adattatore miniport.

[in] MiniportVcContext

Handle a un'area di contesto allocata dal driver miniport in cui il driver miniport mantiene lo stato di connessione virtuale (VC). Il driver miniport ha fornito questo handle a NDIS dalla sua funzione MiniportCoCreateVc . Se la richiesta non è specifica DEL VC, questo parametro è NULL.

NdisRequest

Puntatore a una struttura NDIS_OID_REQUEST che contiene sia il buffer che il pacchetto di richiesta per il driver miniport da gestire. A seconda della richiesta, il driver restituisce informazioni richieste nella struttura a cui punta questo parametro.

Valore restituito

MiniportCoOidRequest può restituire uno dei valori di stato seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Il driver miniport è impostato o ottenuto i dati come richiesto.
NDIS_STATUS_PENDING
Il driver miniport completa la richiesta in modo asincrono. Dopo aver completato l'elaborazione, il driver miniport deve chiamare il Funzione NdisMCoOidRequestComplete per informare NDIS che la richiesta è stata completata.
NDIS_STATUS_INVALID_OID
Richiesta specificata dal parametro OidRequest non valida o non riconosciuta.
NDIS_STATUS_NOT_SUPPORTED
La richiesta che il parametro OidRequest specificato è stato riconosciuto ma non supportato dal driver miniport.
NDIS_STATUS_BUFFER_TOO_SHORT
Il buffer fornito dal parametro OidRequest era troppo piccolo per contenere i dati richiesti.
NDIS_STATUS_INVALID_LENGTH
Il valore specificato nel membro InformationBufferLength della struttura NDIS_OID_REQUEST in OidRequest non è corretto per il codice OID_ XXX specificato.
NDIS_STATUS_INVALID_DATA
Uno o più parametri specificati per la richiesta in OidRequest iwas non validi.
NDIS_STATUS_NOT_ACCEPTED
Dopo che NDIS chiama l'oggetto La funzione MiniportDevicePnPEventNotify per indicare una rimozione delle sorprese, NDIS chiama la funzione MiniportHaltEx del driver. Se il driver riceve richieste OID prima di NDIS chiama MiniportHaltEx, deve completare immediatamente tali richieste con un valore di stato di NDIS_STATUS_NOT_ACCEPTED.
NDIS_STATUS_REQUEST_ABORTED
Il driver miniport ha arrestato l'elaborazione della richiesta. Ad esempio, NDIS denominato MiniportResetEx o Funzione MiniportCancelOidRequest .

Commenti

NDIS chiama la funzione MiniportCoOidRequest per gestire una richiesta OID per eseguire query o impostare informazioni in un driver miniport CoNDIS.

Per registrare MiniportCoOidRequest, i driver miniport chiamano la funzione NdisSetOptionalHandlers dalla funzione MiniportSetOptions . In MiniportSetOptions il driver miniport inizializza un NDIS_MINIPORT_CO_CHARACTERISTICS struttura e lo passa al parametro OptionalHandlers di NdisSetOptionalHandlers.

NDIS chiama la funzione MiniportCoOidRequest per proprio conto o per conto di un driver di protocollo associato che ha chiamato la funzione NdisCoOidRequest . I driver miniport devono esaminare la richiesta fornita in OidRequest e eseguire l'azione richiesta. Per altre informazioni sugli OID gestiti dai driver miniport, vedere NDIS OID.

Si noti che NDIS non convalida il contenuto specifico dell'OID in OidRequest . Pertanto, il driver stesso deve convalidare questi contenuti. Se il driver determina che il valore da impostare non è limitato, deve non riuscire la richiesta e restituire NDIS_STATUS_INVALID_DATA.

Se MiniportCoOidRequest restituisce NDIS_STATUS_PENDING, NDIS può chiamare MiniportCoOidRequest con un'altra richiesta, per l'adattatore miniport specificato in MiniportAdapterContext, prima del completamento della richiesta in sospeso. NDIS non serializza le richieste OID orientate alla connessione.

Esempi

Per definire una funzione MiniportCoOidRequest , è prima necessario specificare una dichiarazione di funzione che identifica il tipo di funzione che si sta definendo. Windows fornisce un set di tipi di funzione per i driver. La dichiarazione di una funzione usando i tipi di funzione consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una funzione MiniportCoOidRequest denominata "MyCoOidRequest", usare il tipo di MINIPORT_CO_OID_REQUEST come illustrato in questo esempio di codice:

MINIPORT_CO_OID_REQUEST MyCoOidRequest;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
NDIS_STATUS
 MyCoOidRequest(
    NDIS_HANDLE  MiniportAdapterContext,
    NDIS_HANDLE  MiniportVcContext,
    PNDIS_OID_REQUEST  OidRequest
    )
  {...}

Il tipo di funzione MINIPORT_CO_OID_REQUEST è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano usate le annotazioni applicate al tipo di funzione MINIPORT_CO_OID_REQUEST nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver NDIS.

Per informazioni su Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Windows
Intestazione ndis.h (includere Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

MiniportCancelOidRequest

MiniportCoCreateVc

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportResetEx

MiniportSetOptions

NDIS_MINIPORT_CO_CHARACTERISTICS

NDIS_OID_REQUEST

NdisCoOidRequest

NdisMCoOidRequestComplete

NdisSetOptionalHandlers