Condividi tramite


Funzione NdisOpenAdapter (ndis.h)

Nota NDIS 5. x è stato deprecato e sostituito da NDIS 6. x. Per i nuovi 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 Porting NDIS 5.x Drivers to NDIS 6.0.

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

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 in caso di restituzione 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 è riuscito ad 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é non è stato possibile trovare il nome in AdapterName 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 di apertura 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 diXXX NDIS_STATUS_ che fornisce altre informazioni se NdisOpenAdapter restituisce un errore in stato . Ad esempio, il driver di una scheda di interfaccia di rete dell'anello di 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 corretta 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 della matrice che specifica il tipo di supporto utilizzato 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 a livello di area. 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 di 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 tipo medio come NdisMedium802_3 o NdisMedium802_5, a seconda della configurazione del driver LanE da parte dell'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 emulano Ethernet a driver NDIS di livello superiore.

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

  • NdisMediumIrda
    Specifica una rete a infrarossi (IrDA).

  • NdisMediumCoWan
    Specifica una rete wide area in un ambiente orientato alla connessione.

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

[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 di contesto residente fornita dal chiamante in cui il protocollo mantiene lo stato di questa associazione dopo che è stato stabilito.

[in] AdapterName

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

[in] OpenOptions

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

[in, optional] AddressingInformation

Puntatore a una stringa con conteggio a lunghezza variabile facoltativa contenente informazioni specifiche della scheda di interfaccia di rete sottostante che il driver NIC 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 di apertura. Un driver NIC sottostante che supporta un modem asincrono può utilizzare queste informazioni per la composizione.

Valore restituito

Nessuno

Osservazioni

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

La stringa in AdapterName rimane valida solo fino a quando 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 fino a quando non viene chiamato ProtocolOpenAdapterComplete, non possono trovarsi nello stack. In genere, queste variabili si trovano 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 chiamate successivamente dal driver. Il ProtocolBindingContext fornito è un parametro di input per le funzioni ProtocolXxx del chiamante, quindi i protocolli in genere passano un puntatore NdisProtocolHandle a una variabile in un punto qualsiasi nell'area del contesto allocata dal chiamante nelle relative chiamate a NdisOpenAdapter.

Il chiamante usa il valore restituito in SelectedMediumIndex nelle chiamate successive a NdisRequest e/o NdisCoRequest. Gli OID impostati nel pacchetto di richiesta dipendono dall'oggetto restituito NdisMediumXxx. Ad esempio, se NdisMediumAtm viene restituito in SelectedMediumIndex, il driver del protocollo chiama NdisCoRequest quando si specificano OID_ATM_ XXX o OID_CO_codici 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 utilizza il driver sottostante.

Se una query globale rilasciata in precedenza di OID_NETWORK_TYPE per i supporti wireless indica che il driver e la scheda di interfaccia di rete sottostante supportano più di un NdisMediumWirelessWan-type medium, 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 ID generici e medi che i driver di protocollo usano per negoziare con un driver NDIS just-bound, vedere NDIS Object Identifiers.

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

Fabbisogno

Requisito Valore
intestazione ndis.h (include Ndis.h)
libreria Ndis.lib
IRQL PASSIVE_LEVEL

Vedere anche