Share via


PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX funzione di callback (ndis.h)

NDIS chiama la funzione ProtocolCloseAdapterCompleteEx di un driver di protocollo per completare un'operazione di scheda chiusa per cui la funzione NdisCloseAdapterEx ha restituito NDIS_STATUS_PENDING.

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

Sintassi

PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX ProtocolCloseAdapterCompleteEx;

void ProtocolCloseAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext
)
{...}

Parametri

[in] ProtocolBindingContext

Handle per un'area di contesto allocata dal driver del protocollo. Il driver del 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 la funzione NdisOpenAdapterEx .

Valore restituito

nessuno

Osservazioni

ProtocolCloseAdapterCompleteEx è una funzione necessaria.

Se ProtocolUnbindAdapterEx è in attesa di NDIS per chiamare ProtocolCloseAdapterCompleteEx, questa funzione può semplicemente indicare che è stata chiamata e restituita,ad esempio aggiorna l'area di contesto ProtocolBindingContext . Ciò consente alla funzione ProtocolCloseAdapterCompleteEx di completare l'operazione di annullamento dell'associazione.

Dopo che il driver del protocollo chiama la funzione NdisCloseAdapterEx , l'handle NdisBindingHandle restituito dalla funzione NdisOpenAdapterEx non è più valido. Pertanto, ProtocolCloseAdapterCompleteEx non può chiamare alcuna funzione NdisXxx che richiede questo handle come parametro.

Se il parametro La funzione ProtocolUnbindAdapterEx non è già stata eseguita, ProtocolCloseAdapterCompleteEx può rilasciare le risorse allocate dal driver del protocollo per le operazioni di I/O di rete per associazione.

Se ProtocolUnbindAdapterEx ha restituito NDIS_STATUS_PENDING e salvato l'handle UnbindContext nell'area di contesto in ProtocolBindingContext, ProtocolCloseAdapterCompleteEx può chiamare l'oggetto Funzione NdisCompleteUnbindAdapterEx per completare l'operazione di associazione. Di conseguenza , ProtocolCloseAdapterCompleteEx non deve rilasciare l'area di contesto fino a quando non chiama NdisCompleteUnbindAdapterEx.

NDIS chiama ProtocolCloseAdapterCompleteEx in IRQL = PASSIVE_LEVEL.

Esempi

Per definire una funzione ProtocolCloseAdapterCompleteEx , è 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 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 ProtocolCloseAdapterCompleteEx denominata "MyCloseAdapterCompleteEx ", usare il tipo PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX come illustrato in questo esempio di codice:

PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX MyCloseAdapterCompleteEx;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyCloseAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext
    )
  {...}

Il tipo di funzione PROTOCOL_CLOSE_ADAPTER_COMPLETE_EX è 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 PROTOCOL_CLOSE_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 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 PASSIVE_LEVEL

Vedi anche

NdisCloseAdapterEx

NdisCompleteUnbindAdapterEx

NdisOpenAdapterEx

ProtocolUnbindAdapterEx