Compartir a través de


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

MRxFinalizeVNetRoot

RxCreateNetFcb

rxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

de RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

rxReference

rxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

la estructura de V_NET_ROOT