PROTOCOL_CL_CLOSE_AF_COMPLETE funzione di callback (ndis.h)
La funzione ProtocolClCloseAfComplete viene usata dai client NDIS orientati alla connessione. Tutti i client NDIS orientati alla connessione devono avere funzioni ProtocolClCloseAfComplete per completare le operazioni asincrone avviate con NdisClCloseAddressFamily.
Sintassi
PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;
void ProtocolClCloseAfComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolAfContext
)
{...}
Parametri
[in] Status
Specifica lo stato finale della richiesta avviata dal client per chiudere la famiglia di indirizzi, che può essere una delle seguenti:
NDIS_STATUS_SUCCESS
La famiglia di indirizzi è stata chiusa. NdisAfHandle che rappresentava la famiglia di indirizzi aperti, che il client archiviato nell'area ProtocolAfContext, non è ora valido.
NDIS_STATUS_FAILURE
L'AF ha associato VC(s) e/o registrato SAP(s) che il client deve rilasciare prima di tentare di chiudere l'AF o il client denominato NdisClCloseAddressFamily due volte perché NDIS ha rilevato che lo stato af è stato contrassegnato come "chiusura".
[in] ProtocolAfContext
Specifica l'handle fornito dal client nell'area di contesto per af. Il client ha originariamente configurato questa area di contesto e passato questo handle a NDIS con NdisClOpenAddressFamilyEx.
Valore restituito
nessuno
Osservazioni
Dopo aver garantito che non disponga di schede virtuali e/o saps registrati nella famiglia di indirizzi aperti, un client chiama NdisClCloseAddressFamily per eliminare l'associazione tra se stessa, un gestore chiamate e una determinata scheda di interfaccia di rete sottostante. NDIS chiama la funzione ProtocolCmCloseAf per il gestore chiamate usato originariamente per aprire la famiglia di indirizzi come operazione asincrona. Dopo aver chiamato NdisClCloseAddressFamily, il client deve considerare NdisAfHandle non valido.
Di conseguenza, il client deve avere una funzione ProtocolClCloseAfComplete , che chiama NDIS al termine dell'operazione close-AF asincrona. Se lo stato di input è NDIS_STATUS_SUCCESS, il client può rilasciarne l'area per contesto af.
Esempi
Per definire una funzione ProtocolClCloseAfComplete , è prima necessario specificare 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 ProtocolClCloseAfComplete denominata "MyClCloseAfComplete ", usare il tipo PROTOCOL_CL_CLOSE_AF_COMPLETE come illustrato in questo esempio di codice:
PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;
Implementare quindi la funzione come indicato di seguito:
_Use_decl_annotations_
VOID
MyClCloseAfComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolAfContext
)
{...}
Il tipo di funzione PROTOCOL_CL_CLOSE_AF_COMPLETE è 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_CL_CLOSE_AF_COMPLETE 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 per i driver NDIS 6.0 e NDIS 5.1 (vedere ProtocolClCloseAfComplete (NDIS 5.1) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolClCloseAfComplete (NDIS 5.1) in Windows XP. |
Piattaforma di destinazione | Windows |
Intestazione | ndis.h (includere Ndis.h) |
IRQL | <= DISPATCH_LEVEL |