Condividi tramite


PROTOCOL_CM_CLOSE_AF funzione di callback (ndis.h)

La funzione ProtocolCmCloseAf è una funzione obbligatoria che rilascia le risorse per ogni apertura per una famiglia di indirizzi supportata da un gestore chiamate.

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

Sintassi

PROTOCOL_CM_CLOSE_AF ProtocolCmCloseAf;

NDIS_STATUS ProtocolCmCloseAf(
  [in] NDIS_HANDLE CallMgrAfContext
)
{...}

Parametri

[in] CallMgrAfContext

Specifica l'handle per l'area di contesto del gestore chiamate, originariamente fornita a NDIS dalla funzione ProtocolCmOpenAf del gestore chiamate.

Valore restituito

ProtocolCmCloseAf restituisce lo stato delle operazioni seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Indica che il gestore chiamate ha rilasciato o disattivato tutte le risorse allocate per conto del client orientato alla connessione che ha aperto questa istanza della famiglia di indirizzi.
NDIS_STATUS_PENDING
Indica che la richiesta di chiudere l'istanza aperta della famiglia di indirizzi verrà completata in modo asincrono. Il chiamante deve chiamare NdisCmCloseAddressFamilyComplete quando tutte queste operazioni sono state completate.

Commenti

ProtocolCmCloseAf rilascia e/o disattiva tutte le risorse allocate dal gestore chiamate nella relativa funzione ProtocolCmOpenAf . Il gestore chiamate deve anche annullare qualsiasi altra azione eseguita per conto del client orientato alla connessione quando la famiglia di indirizzi è stata aperta da tale client.

Se sono presenti richieste o connessioni in sospeso ancora aperte in una famiglia di indirizzi archiviata in CallMgrAfContext, un gestore chiamate può rispondere alla richiesta di un client di chiudere la famiglia di indirizzi in uno dei modi seguenti:

  • Il gestore chiamate può non riuscire la richiesta con NDIS_STATUS_NOT_ACCEPTED.
  • Il gestore chiamate può restituire NDIS_STATUS_PENDING. Dopo che il client ha chiuso tutte le chiamate e ha annullato la registrazione di tutti i provider di servizi di configurazione, il gestore chiamate può quindi chiudere la famiglia di indirizzi e chiamare NdisCmCloseAddressFamilyComplete o NdisMCmCloseAddressFamilyComplete per inviare una notifica al client. Questa è la risposta preferita.

Esempi

Per definire una funzione ProtocolCmCloseAf , è 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 ProtocolCmCloseAf denominata "MyCmCloseAf", usare il tipo di PROTOCOL_CM_CLOSE_AF , come illustrato nell'esempio di codice seguente:

PROTOCOL_CM_CLOSE_AF MyCmCloseAf;

Implementare quindi la funzione come segue:

_Use_decl_annotations_
NDIS_STATUS
 MyCmCloseAf(
    NDIS_HANDLE  CallMgrAfContext
    )
  {...}

Il tipo di funzione PROTOCOL_CM_CLOSE_AF è 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 assicura che vengano utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_CM_CLOSE_AF 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 per i driver NDIS 6.0 e NDIS 5.1 (vedere ProtocolCmCloseAf (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolCmCloseAf (NDIS 5.1)) in Windows XP.
Piattaforma di destinazione Windows
Intestazione ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

NdisCmCloseAddressFamilyComplete

ProtocolCmOpenAf