Función RxFinalizeVNetRoot (fcb.h)
RxFinalizeVNetRoot finaliza la estructura de V_NET_ROOT dada. El autor de la llamada debe tener un bloqueo exclusivo en la tabla netname asociada al objeto de dispositivo.
Sintaxis
BOOLEAN RxFinalizeVNetRoot(
[out] OUT PV_NET_ROOT ThisVNetRoot,
[in] IN BOOLEAN RecursiveFinalize,
[in] IN BOOLEAN ForceFinalize
);
Parámetros
[out] ThisVNetRoot
Puntero a la estructura V_NET_ROOT que se va a finalizar.
[in] RecursiveFinalize
Valor que indica si la finalización se debe realizar de forma recursiva. Este parámetro no se usa actualmente.
[in] ForceFinalize
Valor que indica si se debe forzar la finalización, independientemente del recuento de referencias.
Si ForceFinalize es FALSE, el miembro NodeReferenceCount de la estructura de V_NET_ROOT a la que apunta thisVNetRoot debe ser 1 para que se finalice el V_NET_ROOT.
Valor devuelto
RxFinalizeVNetRoot devuelve TRUE correcto o FALSE si no se produjo la finalización:
Observaciones
Normalmente, los controladores de minidirector de red no llaman a la rutina RxFinalizeVNetRoot. RDBSS llama a esta rutina internamente cuando el recuento de referencias de la V_NET_ROOT se reduce a 1.
rutina rxFinalizeVNetRoot también la llama la rutina de RxFinalizeConnect ion si el parámetro Level de para RxFinalizeConnection está establecido en TRUE. rxFinalizeConnection normalmente lo llama un controlador mini-redirector de red en respuesta a recibir una solicitud IOCTL personalizada del modo de usuario. Por ejemplo, un usuario podría ejecutar desde la línea de comandos un "NET USE x: /d" para eliminar un recurso compartido. Esta solicitud se asignaría a través del archivo DLL del proveedor de red proporcionado por el minidirector de red a una solicitud IOCTL personalizada enviada al controlador de kernel minidirector de red que llamaría a la rutina de RxFinalizeConnection para eliminar la conexión y las estructuras de V_NET_ROOT asociadas.
rxFinalizeVNetRoot también lo llama la rutina de RxForceFinalizeAllVNetRoots para finalizar cada V_NET_ROOT asociado a una estructura de NET_ROOT.
Antes de llamar a RxFinalizeVNetRoot, se debe adquirir un bloqueo en la tabla netname asociada al objeto device en modo exclusivo.
Si el de UpperFinalization del V_NET_ROOT es 0, RxFinalizeVNetRoot recorrerá en iteración todos los FCB que pertenecen al NET_ROOT asociado a esta V_NET_ROOT y huérfanas todas las estructuras de SRV_OPEN asociadas al V_NET_ROOT.
RxFinalizeVNetRoot llamará a la rutina MRxFinalizeVNetRoot proporcionada por el minidirector de red para finalizar el V_NET_ROOT antes de que se libere la memoria de la estructura V_NET_ROOT.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | fcb.h (incluya Mrxfcb.h, Fcb.h) |
irQL | <= APC_LEVEL |
Consulte también
de RxDereference