Condividi tramite


Funzione NdisOpenAdapter (ndis.h)

Nota NDIS 5. x è stato deprecato ed è sostituito da NDIS 6. x. Per il nuovo sviluppo di driver NDIS, vedere Driver di rete a partire da Windows Vista. Per informazioni sulla conversione di NDIS 5. driver x a NDIS 6. x, vedere Conversione di driver NDIS 5.x in NDIS 6.0.

NdisOpenAdapter configura un'associazione tra il protocollo chiamante e un determinato driver NIC sottostante o NDIS intermedio.

Sintassi

void NdisOpenAdapter(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_STATUS OpenErrorStatus,
  [out]          PNDIS_HANDLE NdisBindingHandle,
  [out]          PUINT        SelectedMediumIndex,
  [in]           PNDIS_MEDIUM MediumArray,
  [in]           UINT         MediumArraySize,
  [in]           NDIS_HANDLE  NdisProtocolHandle,
  [in]           NDIS_HANDLE  ProtocolBindingContext,
  [in]           PNDIS_STRING AdapterName,
  [in]           UINT         OpenOptions,
  [in, optional] PSTRING      AddressingInformation
);

Parametri

[out] Status

Puntatore a una variabile fornita dal chiamante che può essere uno dei valori seguenti restituiti da questa funzione:

  • STATUS_SUCCESS
    L'associazione richiesta è ora configurata in modo che il chiamante possa usare i valori restituiti in NdisBindingHandle e SelectedMediumIndex nelle chiamate successive a NdisXxx.

  • NDIS_STATUS_PENDING
    L'operazione richiesta viene gestita in modo asincrono e la funzione ProtocolOpenAdapterComplete del chiamante verrà chiamata al termine dell'apertura.

  • NDIS_STATUS_RESOURCES
    L'operazione richiesta non è riuscita perché NDIS non ha potuto allocare memoria sufficiente o inizializzare lo stato usato per tenere traccia di un'associazione aperta.

  • NDIS_STATUS_ADAPTER_NOT_FOUND
    L'operazione richiesta non è riuscita perché il nome in AdapterName non è stato trovato nello spazio dei nomi dell'oggetto di sistema.

  • NDIS_STATUS_UNSUPPORTED_MEDIA
    La matrice in MediumArray non specifica alcun supporto supportato da NDIS o dal driver sottostante.

  • NDIS_STATUS_CLOSING
    Il chiamante o il dispositivo fisico o virtuale designato in AdapterName viene chiuso.

  • NDIS_STATUS_OPEN_FAILED
    Il tentativo aperto non è riuscito per nessuno dei motivi specifici precedenti. Ad esempio, è possibile che NDIS non sia riuscito a inizializzare il pacchetto di filtro per il supporto selezionato.

[out] OpenErrorStatus

Puntatore a una variabile fornita dal chiamante che può contenere un errore NDIS_STATUS_ XXX che fornisce altre informazioni se NdisOpenAdapter restituisce un errore in Stato. Ad esempio, il driver di una scheda di interfaccia di rete dell'anello token potrebbe restituire un errore di anello in questa variabile.

[out] NdisBindingHandle

Puntatore a una variabile fornita dal chiamante in cui NDIS restituisce un handle che rappresenta un'associazione riuscita tra il chiamante e la scheda di interfaccia di rete fisica o virtuale specificata in AdapterName.

[out] SelectedMediumIndex

Puntatore a una variabile fornita dal chiamante in cui NDIS restituisce l'indice dell'elemento matrice che specifica il tipo di supporto usato dal driver NDIS sottostante.

[in] MediumArray

Puntatore a una matrice di valori di tipo NDIS_MEDIUM che specificano i tipi di supporti supportati dal chiamante. Gli elementi possibili includono qualsiasi subset appropriato dei seguenti elementi:

  • NdisMedium802_3
    Specifica una rete Ethernet (802.3).

  • NdisMedium802_5
    Specifica una rete token ring (802.5).

  • NdisMediumFddi
    Specifica una rete FDDI (Fiber Distributed Data Interface).

  • NdisMediumWan
    Specifica una rete di area ampia. Questo tipo copre varie forme di schede di interfaccia di rete da punto a punto e WAN, nonché formati di indirizzo/intestazione varianti che devono essere negoziati tra il driver del protocollo e il driver sottostante dopo la definizione dell'associazione.

  • NdisMediumLocalTalk
    Specifica una rete LocalTalk.

  • NdisMediumDix
    Specifica una rete Ethernet per cui i driver usano il formato di intestazione ETHERNET DIX.

  • NdisMediumArcnetRaw
    Specifica una rete ARCNET.

  • NdisMediumArcnet878_2
    Specifica una rete ARCNET (878.2).

  • NdisMediumAtm
    Specifica una rete ATM. I protocolli client orientati alla connessione possono associarsi a un driver miniport sottostante che restituisce questo valore. In caso contrario, i protocolli legacy si associano al driver intermedio LanE fornito dal sistema, che segnala il relativo tipo medio come NdisMedium802_3 o NdisMedium802_5, a seconda del modo in cui il driver LanE è configurato dall'amministratore di rete.

  • NdisMediumWirelessWan
    Specifica una rete wireless. I driver miniport NDIS 5.X che supportano pacchetti WIRELESS LAN (WLAN) o wan wireless (WWAN) dichiarano il loro supporto come NdisMedium802_3 ed emulare Ethernet ai driver NDIS di livello superiore.

    Nota Questo tipo di supporto non è disponibile per l'uso a partire da Windows Vista.

  • NdisMediumIrda
    Specifica una rete irDA (Infrarossi).

  • NdisMediumCoWan
    Specifica una rete a livello di area in un ambiente orientato alla connessione.

  • NdisMedium1394
    Specifica una rete IEEE 1394 (filo di fuoco).

[in] MediumArraySize

Specifica il numero di elementi in MediumArray.

[in] NdisProtocolHandle

Specifica l'handle restituito da NdisRegisterProtocol.

[in] ProtocolBindingContext

Specifica l'handle per un'area del contesto residente fornita dal chiamante in cui il protocollo mantiene lo stato relativo a questo binding dopo che è stato stabilito.

[in] AdapterName

Puntatore a un tipo NDIS_STRING contenente una stringa conteggiata, specificata nel set di caratteri predefinito del sistema, assegnando alla scheda di interfaccia di rete o all'adattatore virtuale di un driver NDIS sottostante. Questo driver esporta un set di funzioni superiore perimetrale ( MiniportXxx). Per i driver Windows 2000 e versioni successive, questa stringa conteggiata contiene caratteri Unicode. Vale a dire, per Windows 2000 e versioni successive, NDIS definisce il tipo NDIS_STRING come tipo di UNICODE_STRING .

[in] OpenOptions

Specifica una maschera bit contenente i flag che il chiamante passa al driver inferiore successivo, presupponendo che sia un driver di interfaccia di interfaccia di rete. Attualmente, questo parametro è riservato per l'uso del sistema.

[in, optional] AddressingInformation

Puntatore a una stringa a lunghezza variabile facoltativa contenente informazioni specifiche della scheda di interfaccia di rete sottostante che il driver di interfaccia di interfaccia di rete può usare per programmare la netcard. Questo puntatore può essere NULL.

Se viene specificato, le informazioni di indirizzamento devono rimanere valide fino al completamento dell'operazione aperta. Un driver della scheda di interfaccia di rete sottostante che supporta un modem asincrono può usare queste informazioni per la composizione.

Valore restituito

nessuno

Osservazioni

Un driver di protocollo chiama NdisOpenAdapter dalla relativa funzione ProtocolBindAdapter . NDIS non supporta più la chiamata a NdisOpenAdapter dalla funzione DriverEntry , che era un'opzione disponibile per i protocolli legacy (V3.0). NDIS non supporta più protocolli V3.0. NDIS ha esito negativo qualsiasi tentativo di chiamare NdisOpenAdapter all'esterno del contesto di ProtocolBindAdapter.

La stringa in AdapterName rimane valida solo finché NdisOpenAdapter restituisce il controllo, anche se restituisce NDIS_STATUS_PENDING in Stato.

Le variabili in NdisBindingHandle e SelectedMediumIndex devono essere ignorate finché la funzione ProtocolOpenAdapterComplete viene chiamata se NdisOpenAdapter restituisce NDIS_STATUS_PENDING. Poiché queste variabili possono rimanere non valide finché non viene chiamato ProtocolOpenAdapterComplete , non possono essere nello stack. In genere, queste variabili risiedono nell'area ProtocolBindingContext poiché questo handle è un parametro di input per ProtocolOpenAdapterComplete.

Un driver di protocollo deve mantenere l'handle restituito in NdisProtocolHandle. È un parametro obbligatorio per altre funzioni NdisXxx che il driver chiama successivamente. Il protocollo fornitoBindingContext è un parametro di input per le funzioni ProtocolXxx del chiamante, pertanto i protocolli in genere passano un puntatore NdisProtocolHandle a una variabile in un punto del contesto allocato del chiamante nelle chiamate a NdisOpenAdapter.

Il chiamante usa il valore restituito in SelectedMediumIndex nelle chiamate successive a NdisRequest e/o NdisCoRequest. Gli ID impostati nel pacchetto di richiesta dipendono dall'oggetto NdisMediumXxx restituito. Ad esempio, se NdisMediumAtm viene restituito in SelectedMediumIndex, il driver del protocollo chiama NdisCoRequest quando si specificano OID_ATM_ XXX o xxx o OID_CO_XXX e NdisRequest quando si specificano codici OID_GEN_XXX.

Se NdisMediumWan viene restituito in SelectedMediumIndex, il driver del protocollo chiama NdisRequest specificando OID_WAN_MEDIUM_SUBTYPE in una query per determinare quale dei tipi di supporti WAN usa il driver sottostante.

Se una query globale precedentemente rilasciata di OID_NETWORK_TYPE per supporti wireless indica che il driver e la scheda di interfaccia di rete sottostante supportano più di un supporto NdisMediumWirelessWan-type, il protocollo deve selezionare uno dei supporti supportati non appena NDIS ha configurato l'associazione e prima che il protocollo selezioni il formato di intestazione.

Per altre informazioni sugli OID generali e medi che i driver di protocollo usano per negoziare con un driver NDIS associato a just-bound, vedere Identificatori di oggetti NDIS.

  • Piattaforma di destinazione: universale
  • Versione: non supportata per i driver NDIS 6.0 in Windows Vista. Usare invece NdisOpenAdapterEx. Supportato per i driver NDIS 5.1 in Windows Vista e Windows XP.

Requisiti

Requisito Valore
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL PASSIVE_LEVEL

Vedi anche