PROTOCOL_OPEN_ADAPTER_COMPLETE_EX funzione di callback (ndis.h)

NDIS chiama la funzione ProtocolOpenAdapterCompleteEx di un driver di protocollo per completare un'operazione di adattatore aperto per cui la funzione NdisOpenAdapterEx ha restituito NDIS_STATUS_PENDING.

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

Sintassi

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;

void ProtocolOpenAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_STATUS Status
)
{...}

Parametri

[in] ProtocolBindingContext

Handle per un'area di contesto allocata dal driver del protocollo. Il driver di protocollo gestisce le informazioni sul contesto per associazione in questa area di contesto. Il driver ha fornito questo handle a NDIS quando il driver ha chiamato NdisOpenAdapterEx.

[in] Status

Stato finale dell'operazione di apertura per il driver miniport sottostante. Questo valore di stato è NDIS_STATUS_SUCCESS se l'associazione è stata stabilita o qualsiasi stato di errore determinato dal driver sottostante.

Valore restituito

nessuno

Osservazioni

È necessaria la funzione ProtocolOpenAdapterCompleteEx . Un driver di protocollo chiama la funzione NdisOpenAdapterEx dalla relativa funzione ProtocolBindAdapterEx . NDIS chiama la funzione ProtocolOpenAdapterCompleteEx del driver dopo il completamento di un'operazione di apertura in sospeso.

Se ProtocolBindAdapterEx è in attesa che NDIS chiami ProtocolOpenAdapterCompleteEx, questa funzione può semplicemente salvare lo stato e indicare che è stata chiamata( ad esempio, può aggiornare l'area di contesto ProtocolBindingContext ). Ciò consente alla funzione ProtocolBindAdapterEx di completare l'operazione di associazione.

Se la funzione ProtocolBindAdapterEx non è già stata eseguita, ProtocolOpenAdapterCompleteEx può allocare le risorse richieste dal driver per l'associazione.

Se ProtocolBindAdapterEx ha restituito NDIS_STATUS_PENDING, ProtocolOpenAdapterCompleteEx può chiamare il Funzione NdisCompleteBindAdapterEx per completare l'operazione di associazione. In questo caso , ProtocolOpenAdapterCompleteEx passa NdisCompleteBindAdapterEx l'handle BindContext passato a ProtocolBindAdapterEx. Se il parametro Status indica un errore, ProtocolOpenAdapterCompleteEx può rilasciare le risorse di associazione configurate in ProtocolBindAdapterEx.

NDIS chiama ProtocolOpenAdapterCompleteEx in IRQL = PASSIVE_LEVEL.

Esempi

Per definire una funzione ProtocolOpenAdapterCompleteEx , è prima necessario fornire 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 con i tipi di funzione consente di eseguire l'analisi del codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica rilevano gli errori ed è un requisito per la scrittura dei driver per il sistema operativo Windows.

Ad esempio, per definire una funzione ProtocolOpenAdapterCompleteEx denominata "MyOpenAdapterCompleteEx", usare il tipo PROTOCOL_OPEN_ADAPTER_COMPLETE_EX come illustrato nell'esempio di codice seguente:

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;

Implementare quindi la funzione come segue:

_Use_decl_annotations_
VOID
 MyOpenAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_STATUS  Status
    )
  {...}

Il tipo di funzione PROTOCOL_OPEN_ADAPTER_COMPLETE_EX è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori quando si eseguono gli 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 utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_OPEN_ADAPTER_COMPLETE_EX nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione per i driver NDIS.

Per informazioni sulle 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 (include Ndis.h)
IRQL PASSIVE_LEVEL

Vedi anche

NdisCompleteBindAdapterEx

NdisOpenAdapterEx

ProtocolBindAdapterEx