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 |