Función RxFinalizeConnection (rxprocs.h)
RxFinalizeConnection elimina una conexión a un recurso compartido. Los archivos abiertos en la conexión se cierran en función del nivel de fuerza especificado. El minidirector de red podría optar por mantener abierta la conexión de transporte por motivos de rendimiento, a menos que se especifique alguna opción para forzar un cierre de conexión.
Sintaxis
NTSTATUS RxFinalizeConnection(
IN OUT PNET_ROOT NetRoot,
IN OUT PV_NET_ROOT VNetRoot,
IN LOGICAL ForceFilesClosed
);
Parámetros
NetRoot
[in, out] Puntero a la estructura NET_ROOT que se está finalizando.
VNetRoot
Puntero a la estructura V_NET_ROOT que se está finalizando.
ForceFilesClosed
Marca que controla el comportamiento de la rutina RxFinalizeConnection . La marca puede ser uno de los siguientes valores:
- VERDAD
- FALSO
- 0xff
RxFinalizeConnection se realiza correctamente independientemente de lo que incluso si los archivos huérfanos y las solicitudes de IRP_MN_NOTIFY_CHANGE_DIRECTORY están abiertas. La opción obliga a cerrar estos archivos huérfanos.
RxFinalizeConnection produce un error si los archivos o las notificaciones de cambio están abiertas.
RxFinalizeConnection quita la referencia adicional en la estructura de V_NET_ROOT debido a la solicitud de adición de conexión, pero de lo contrario actúa como FALSE. RxFinalizeConnection produce un error si los archivos o las notificaciones de cambio están abiertas.
Valor devuelto
RxFinalizeConnection devuelve STATUS_SUCCESS si se realiza correctamente o uno de los siguientes códigos de error en caso de error:
Código devuelto | Descripción |
---|---|
|
El miembro Flags de la estructura RX_CONTEXT indica que se canceló el IRP. |
|
La conexión sigue en uso. |
|
El archivo estaba abierto, por lo que no se debe eliminar la conexión remota. |
|
Bloqueo exclusivo en el asociado |
Comentarios
RxFinalizeConnection normalmente lo llama un controlador minidirector de red en respuesta a la recepción de 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 RxFinalizeConnection para eliminar la conexión.
RxFinalizeConnection cancela todas las solicitudes pendientes de una estructura de V_NET_ROOT determinada. Estas estructuras de V_NET_ROOT se crean y eliminan independientemente de los archivos que se abren y manipulan en ellas. Por lo tanto, es imperativo que cuando se intente una operación de eliminación, se cancelan todas las solicitudes pendientes.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | rxprocs.h (incluya Rxprocs.h) |
IRQL | <= APC_LEVEL |