Freigeben über


RxFinalizeVNetRoot-Funktion (fcb.h)

RxFinalizeVNetRoot schließt die angegebene V_NET_ROOT-Struktur ab. Der Aufrufer muss über eine exklusive Sperre für die netname-Tabelle verfügen, die dem Geräteobjekt zugeordnet ist.

Syntax

BOOLEAN RxFinalizeVNetRoot(
  [out] OUT PV_NET_ROOT ThisVNetRoot,
  [in]  IN BOOLEAN      RecursiveFinalize,
  [in]  IN BOOLEAN      ForceFinalize
);

Parameter

[out] ThisVNetRoot

Ein Zeiger auf die V_NET_ROOT Struktur, die abgeschlossen werden soll.

[in] RecursiveFinalize

Der Wert, der angibt, ob die Finalisierung rekursiv durchgeführt werden soll. Dieser Parameter in wird derzeit nicht verwendet.

[in] ForceFinalize

Der Wert, der angibt, ob die Finalisierung erzwungen werden soll, unabhängig von der Verweisanzahl.

Wenn ForceFinalizeauf FALSE festgelegt ist, muss das NodeReferenceCount-Element der V_NET_ROOT Struktur, auf die von ThisVNetRoot verwiesen wird, 1 sein, damit die V_NET_ROOT abgeschlossen werden kann.

Rückgabewert

RxFinalizeVNetRoot gibt BEI Erfolg TRUE oder FALSE zurück, wenn die Finalisierung nicht erfolgt ist:

Hinweise

Die RxFinalizeVNetRoot-Routine wird normalerweise nicht direkt von Netzwerk-Miniumleitungstreibern aufgerufen. RDBSS ruft diese Routine intern auf, wenn die Verweisanzahl für die V_NET_ROOT auf 1 dekrementiert wird.

RxFinalizeVNetRoot wird auch von der RxFinalizeConnection-Routine aufgerufen, wenn der Level-Parameter auf RxFinalizeConnection auf TRUE festgelegt ist. RxFinalizeConnection wird normalerweise von einem Netzwerk-Miniumleitungstreiber als Reaktion auf den Empfang einer benutzerdefinierten IOCTL-Anforderung aus dem Benutzermodus aufgerufen. Beispielsweise kann ein Benutzer über die Befehlszeile ein "NET USE x: /d" ausführen, um eine Freigabe zu löschen. Diese Anforderung wird über die Netzwerkanbieter-DLL zugeordnet, die vom Netzwerk-Mini-Redirector bereitgestellt wird, einer benutzerdefinierten IOCTL-Anforderung, die an den Netzwerk-Mini-Redirector-Kerneltreiber gesendet wird, der die RxFinalizeConnection-Routine aufruft, um die Verbindung und alle zugehörigen V_NET_ROOT-Strukturen zu löschen.

RxFinalizeVNetRoot wird auch von der RxForceFinalizeAllVNetRoots-Routine aufgerufen, um jede V_NET_ROOT abzuschließen, die einer NET_ROOT-Struktur zugeordnet ist.

Vor dem Aufrufen von RxFinalizeVNetRoot muss eine Sperre für die netname-Tabelle, die dem Geräteobjekt zugeordnet ist, im exklusiven Modus abgerufen werden.

Wenn der UpperFinalization-Member des V_NET_ROOT 0 ist, durchläuft RxFinalizeVNetRoot alle FCBs, die dem diesem V_NET_ROOT zugeordneten NET_ROOT gehören, und verwaist alle SRV_OPEN Strukturen, die dem V_NET_ROOT zugeordnet sind.

RxFinalizeVNetRoot ruft die vom Netzwerk-Miniumleitung bereitgestellte MRxFinalizeVNetRoot-Routine auf, um die V_NET_ROOT abzuschließen, bevor der Arbeitsspeicher für die V_NET_ROOT-Struktur freigegeben wird.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile fcb.h (einschließlich Mrxfcb.h, Fcb.h)
IRQL <= APC_LEVEL

Weitere Informationen

MRxFinalizeVNetRoot

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinishFcbInitialisierung

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Die V_NET_ROOT-Struktur