Funzione RxFinalizeConnection (rxprocs.h)
RxFinalizeConnection elimina una connessione a una condivisione. Tutti i file aperti nella connessione vengono chiusi a seconda del livello di forza specificato. Il mini-reindirizzamento di rete potrebbe scegliere di mantenere aperta la connessione di trasporto per motivi di prestazioni, a meno che non venga specificata un'opzione per forzare una chiusura della connessione.
Sintassi
NTSTATUS RxFinalizeConnection(
IN OUT PNET_ROOT NetRoot,
IN OUT PV_NET_ROOT VNetRoot,
IN LOGICAL ForceFilesClosed
);
Parametri
NetRoot
[in, out] Puntatore alla struttura NET_ROOT da finalizzare.
VNetRoot
Puntatore alla struttura V_NET_ROOT da finalizzare.
ForceFilesClosed
Flag che controlla il comportamento della routine RxFinalizeConnection . Il flag può essere uno dei valori seguenti:
- VERO
- FALSE
- 0xff
RxFinalizeConnection ha esito positivo indipendentemente da ciò che accade anche se i file orfani e le richieste di IRP_MN_NOTIFY_CHANGE_DIRECTORY sono aperte. L'opzione forza la chiusura di questi file orfani.
RxFinalizeConnection ha esito negativo se i file o le notifiche di modifica sono aperti.
RxFinalizeConnection rimuove il riferimento aggiuntivo nella struttura V_NET_ROOT a causa della richiesta di aggiunta della connessione, ma in caso contrario agisce come FALSE. RxFinalizeConnection ha esito negativo se i file o le notifiche di modifica sono aperti.
Valore restituito
RxFinalizeConnection restituisce STATUS_SUCCESS in caso di esito positivo o uno dei codici di errore seguenti in caso di errore:
Codice restituito | Descrizione |
---|---|
|
Il membro Flags della struttura RX_CONTEXT indica che l'IRP è stato annullato. |
|
La connessione è ancora in uso. |
|
Il file è stato aperto, quindi la connessione remota non deve essere eliminata. |
|
Un blocco esclusivo sull'oggetto associato |
Commenti
RxFinalizeConnection viene in genere chiamato da un driver mini-redirector di rete in risposta alla ricezione di una richiesta IOCTL personalizzata dalla modalità utente. Ad esempio, un utente potrebbe eseguire dalla riga di comando una "NET USE x: /d" per eliminare una condivisione. Questa richiesta viene mappata tramite la DLL del provider di rete fornita dal mini-redirector di rete a una richiesta IOCTL personalizzata inviata al driver kernel del mini-redirector di rete che chiamerebbe la routine RxFinalizeConnection per eliminare la connessione.
RxFinalizeConnection annulla tutte le richieste in sospeso per una determinata struttura di V_NET_ROOT. Queste strutture V_NET_ROOT vengono create ed eliminate indipendentemente dai file aperti e modificati su di essi. Pertanto, quando viene tentata un'operazione di eliminazione, tutte le richieste in sospeso vengono annullate.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |