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

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.

FALSE

RxFinalizeConnection ha esito negativo se i file o le notifiche di modifica sono aperti.

0xff

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
STATUS_CANCELLED
Il membro Flags della struttura RX_CONTEXT indica che l'IRP è stato annullato.
STATUS_CONNECTION_IN_USE
La connessione è ancora in uso.
STATUS_FILES_OPEN
Il file è stato aperto, quindi la connessione remota non deve essere eliminata.
STATUS_LOCK_NOT_GRANTED
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

Vedi anche

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Struttura NET_ROOT

Struttura V_NET_ROOT