Condividi tramite


Concetti e definizioni di NDIS remoti

Questa sezione presenta una panoramica dei requisiti NDIS remoti nel canale di comunicazione e nei driver di livello inferiore usati per comunicare tra l'host e il dispositivo NDIS remoto. Le transizioni dello stato del dispositivo e le operazioni principali, ad esempio l'inizializzazione, l'arresto e la reimpostazione vengono descritte anche in questa sezione.

  • Canale di controllo

    Il canale di controllo deve essere affidabile e garantire il recapito sequenziato. Viene usato per tutte le comunicazioni, ad eccezione della trasmissione di pacchetti di dati di rete. Tutti i messaggi di controllo necessari, ad eccezione di REMOTE_NDIS_HALT_MSG e REMOTE_NDIS_INDICATE_STATUS_MSG, sono scambi di richieste e risposte avviati dall'host. Il dispositivo deve rispondere entro il periodo di timeout, come specificato per ogni bus.

  • Canale dati

    Il canale dati viene usato esclusivamente per la trasmissione di pacchetti di dati di rete. Può essere costituito da più sottocanali ,ad esempio per una qualità di servizio variabile, come definito per il bus appropriato.

  • Inizializzazione e strappo

    I canali di controllo e dati vengono inizializzati e configurati come specificato per il bus appropriato. L'host invia un messaggio REMOTE_NDIS_INITIALIZE_MSG al dispositivo NDIS remoto. Il dispositivo Remote NDIS fornisce informazioni sul relativo tipo (connessa o orientata alla connessione), il supporto e la versione supportati nel messaggio di risposta REMOTE_NDIS_INITIALIZE_CMPLT.

    L'host o il dispositivo NDIS remoto possono eliminare il canale di comunicazione tramite il messaggio di REMOTE_NDIS_HALT_MSG . Tutte le richieste e i pacchetti in sospeso vengono eliminati alla ricezione di questo messaggio.

  • Definizioni dello stato del dispositivo

    Dopo l'inizializzazione a livello di bus, il dispositivo viene detto essere nello stato RNDIS-uninitialized. Dopo aver ricevuto un REMOTE_NDIS_INITIALIZE_MSG e rispondere con un REMOTE_NDIS_INITIALIZE_CMPLT con uno stato di RNDIS_STATUS_SUCCESS , il dispositivo entra nello stato inizializzato RNDIS.

    Dopo aver ricevuto REMOTE_NDIS_SET_MSG specificare un valore di filtro diverso da zero per OID_GEN_CURRENT_PACKET_FILTER, il dispositivo immette lo stato inizializzato RNDIS-data-initialized.

    Quando nello stato RNDIS-data-inizializzato, la ricezione di un REMOTE_NDIS_SET_MSG specificando un valore di filtro zero per OID_GEN_CURRENT_PACKET_FILTER forza il dispositivo allo stato inizializzato RNDIS.

    Ricezione di REMOTE_NDIS_HALT_MSG o disconnessione a livello di bus o ripristino rigido in qualsiasi momento forza il dispositivo allo stato RNDIS-non inizializzato.

  • Halt

    In qualsiasi momento che il dispositivo si trova nello stato inizializzato RNDIS o RNDIS-data-initialized, il computer host può terminare la funzionalità NDIS remota del dispositivo inviando REMOTE_NDIS_HALT_MSG al dispositivo.

  • Reimpostazione del canale di comunicazione

    Il canale di comunicazione viene reimpostato quando si verifica un errore, ad esempio il timeout dei messaggi. L'host può avviare una reimpostazione in qualsiasi momento quando il dispositivo si trova nello stato inizializzato RNDIS inviando il messaggio REMOTE_NDIS_RESET_MSG al dispositivo e il dispositivo deve inviare un messaggio di risposta al termine della reimpostazione. Ad esempio, l'host può avviare una reimpostazione quando si è verificato un errore, ad esempio un timeout del messaggio.

    Si noti che si tratta di una reimpostazione temporanea nel senso che gli handle (ad esempio, le macchine virtuali per i dispositivi orientati alla connessione) continuano a essere valide dopo la reimpostazione. Il dispositivo Remote NDIS elimina tutte le richieste e i pacchetti in sospeso nell'ambito del processo di reimpostazione. Il dispositivo remoto potrebbe reimpostare alcuni dei relativi componenti hardware, ma mantiene intatto il canale di comunicazione.

    Se il dispositivo Remote NDIS esegue un riavvio, questo evento equivale a "Remove" seguito dagli eventi "Aggiungi" Plug and Play. Il driver miniport NDIS host verrà arrestato e rimosso e verrà aggiunta e avviata una nuova istanza. Tutte le inizializzazione NDIS a livello di bus e Remote NDIS verranno rieseguiti. Un dispositivo NDIS remoto può riavviarsi in caso di errore critico del dispositivo.

  • Controllo flusso

    Il dispositivo NDIS remoto potrebbe dover esercitare il controllo del flusso per impedire all'host di sovraflow i buffer di dati con pacchetti. Qualsiasi provisioning o requisiti del controllo del flusso è specifico del bus.

  • Ordinamento byte numerico

    Tutti i valori numerici nei messaggi NDIS remoti devono essere codificati in formato little-endian (primo byte minimo significativo).

  • Incapsulamento messaggi NDIS

    Non esiste alcuna specifica NDIS remota per il modo in cui i messaggi NDIS vengono incapsulati nei messaggi del bus nativo o nelle primitive.