Función RxStopMinirdr (mrx.h)
se llama a rxStopMinirdr para detener un minidirector de red que se ha iniciado anteriormente. Como parte de rxStopMinirdr, RDBSS también anulará el registro del controlador minidirector de red como proveedor de convención de nomenclatura universal (UNC) con el proveedor de varios UNC (MUP) si el controlador indica compatibilidad con nombres UNC.
Sintaxis
NTSTATUS RxStopMinirdr(
[in] IN PRX_CONTEXT RxContext,
[out] OUT PBOOLEAN PostToFsp
);
Parámetros
[in] RxContext
Puntero a la estructura RX_CONTEXT que se va a usar para obtener el objeto de dispositivo y determinar si se trata de un proceso del sistema de archivos.
[out] PostToFsp
Puntero a un valor lógico que se establece en TRUE al devolver si el proceso del sistema de archivos debe publicar la solicitud para su posterior procesamiento.
Valor devuelto
rxStopMinirdr devuelve STATUS_SUCCESS si la secuencia de detención se realizó correctamente o uno de los siguientes valores de error:
Código devuelto | Descripción |
---|---|
STATUS_PENDING | La secuencia de detención para RDBSS y mini-redireccionadores debe completarse en el contexto del proceso del sistema de archivos. Si la llamada a RxStopMinirdr procede de un proceso diferente (por ejemplo, una solicitud en modo de usuario), la solicitud se publicará para su procesamiento posterior y se devolverá STATUS_PENDING. Este error también se puede devolver si determinados bloqueos RDBSS internos no se pueden adquirir sin esperar. |
STATUS_REDIRECTOR_HAS_OPEN_HANDLES | El minidirector de red tiene identificadores abiertos y no se puede detener en este momento. |
STATUS_REDIRECTOR_STOPPED | El minidirector de red ya estaba detenido. |
Observaciones
Cuando se emite una solicitud de detención a RDBSS, puede haber solicitudes en curso en RDBSS. Algunas de las solicitudes se pueden cancelar mientras se deben procesar las solicitudes restantes para completarse.
Hay varias estrategias que se pueden emplear para cerrar RDBSS. Actualmente, se emplea el enfoque más conservador. La cancelación de esas operaciones que se pueden cancelar y la operación de detención se mantiene hasta que las solicitudes restantes se ejecutan hasta su finalización.
El de RDBSS
Una vez que se emite una llamada a rxStopMinirdr, las únicas operaciones permitidas por RDBSS y que se pasan al minidirector de red son solicitudes para los siguientes paquetes de solicitud de E/S:
- IRP_MJ_CLEANUP
- IRP_MJ_CLOSE
La secuencia de detención para RDBSS y el minidirector de red deben completarse en el contexto del proceso del sistema de archivos. Si la llamada a RxStopMinirdr procede de un proceso diferente (por ejemplo, una solicitud en modo de usuario), la solicitud debe publicarse para su procesamiento posterior y se devolverá STATUS_PENDING. En este caso, el identificador de usuario efectivo (el identificador de inicio de sesión) del autor de la llamada se guarda en el miembro FsdUid del parámetro RxContext. Además, si ciertos bloqueos RDBSS internos no se pueden obtener sin esperar, se devuelve STATUS_PENDING y PostToFsp se establece en TRUE. Cuando se devuelve STATUS_PENDING, rxStopMinirdr se publicará para su posterior procesamiento por un proceso del sistema de archivos y completado.
Si un minidirector de red indica compatibilidad con UNC al registrarse con RDBSS (el parámetro Controls de
La rutina
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de |
Escritorio |
encabezado de |
mrx.h (incluya Mrx.h) |
irQL | <= APC_LEVEL |