Condividi tramite


PROTOCOL_UNINSTALL funzione di callback (ndis.h)

NDIS chiama la funzione ProtocolUninstall di un driver di protocollo per eseguire operazioni di pulizia prima della disinstallazione di un driver di protocollo.

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

Sintassi

PROTOCOL_UNINSTALL ProtocolUninstall;

void ProtocolUninstall()
{...}

Valore restituito

nessuno

Osservazioni

La funzione ProtocolUninstall è facoltativa. Il driver del protocollo ha registrato un punto di ingresso, se presente, per questa funzione nell'oggetto NDIS_PROTOCOL_DRIVER_CHARACTERISTICS struttura passata all'oggetto Funzione NdisRegisterProtocolDriver .

In risposta a una richiesta utente di disinstallare un driver di protocollo, NDIS chiama una funzione ProtocolUninstall del driver di protocollo. NDIS chiama ProtocolUninstall dopo aver chiamato il driver del protocollo Funzione ProtocolUnbindAdapterEx una volta per ogni scheda associata.

ProtocolUninstall esegue operazioni di pulizia determinate dal driver. Ad esempio, ProtocolUninstall potrebbe richiedere ai client di chiudere gli handle aperti agli oggetti del dispositivo esportati dal driver del protocollo. Fino a quando tutti questi handle non vengono chiusi, il gestore I/O non chiamerà la routine Di caricamento che il driver del protocollo registrato nell'oggetto driver passato alla routine DriverEntry . Dopo aver chiuso tutti gli handle, ProtocolUninstall può chiamare NdisDeregisterDeviceEx per eliminare qualsiasi oggetto dispositivo creato dal driver del protocollo.

Il bordo inferiore del protocollo di un driver intermedio potrebbe richiedere una funzione ProtocolUninstall . Il driver intermedio può rilasciare le risorse perimetrali del protocollo in ProtocolUninstall prima che NDIS chiami la funzione MiniportDriverUnload .

NDIS chiama ProtocolUninstall in IRQL = PASSIVE_LEVEL.

Esempi

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

PROTOCOL_UNINSTALL MyUninstall;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyUninstall(void)
  {...}

Il tipo di funzione PROTOCOL_UNINSTALL è 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_UNINSTALL 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

DriverEntry

MiniportDriverUnload

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterDeviceEx

NdisRegisterProtocolDriver

ProtocolUnbindAdapterEx

Scaricare