Compartir a través de


Inicio, detención y control de dispositivos del controlador

El registro de controladores se controla en la rutina DriverEntry de un controlador minidirector de red. Cuando se inicia por primera vez un minidirector de red (en su rutina DriverEntry ), el controlador debe llamar a la rutina RDBSS RxRegisterMinirdr para registrar el minidirector de red con RDBSS. El minidirector de red pasa una estructura de MINIRDR_DISPATCH que incluye datos de configuración y una tabla de punteros rutinarios (una tabla de distribución) a las rutinas que implementa el controlador minidirector de red.

El controlador de minidirector de red debe implementar las rutinas MRxStart y MRxStop para permitir que el controlador se inicie y detenga.

La secuencia para iniciar o detener el minidirector de red es compleja. Esta secuencia se inicia normalmente mediante una aplicación o servicio en modo de usuario proporcionado con el controlador minidirector de red para controlar el controlador con fines de administración y administración. El minidirector de red puede usar un servicio configurado para iniciarse automáticamente cuando se inicia el sistema operativo. Este servicio puede solicitar que se inicie el minidirector de red cada vez que se inicie el sistema operativo.

RDBSS llama a MRxStart cuando se llama a la rutina RxStartMinirdr . Normalmente se llama a la rutina RxStartMinirdr como resultado de una solicitud FSCTL o IOCTL de una aplicación o servicio en modo de usuario para iniciar el minidirector de red. La llamada a RxStartMinirdr no se puede realizar desde la rutina DriverEntry del minidirector de red después de una llamada correcta a RxRegisterMinirdrporque parte del procesamiento de inicio requiere que se complete la inicialización del controlador. Una vez recibida la llamada a RxStartMinirdr , RDBSS completa el proceso de inicio llamando a la rutina MRxStart del minidirector de red. Si la llamada a MRxStart devuelve éxito, RDBSS establece el estado interno del minidirector en RDBSS en RDBSS_STARTED.

RDBSS llama a MRxStop cuando se llama a la rutina RxStopMinirdr . Normalmente se llama a la rutina RDBSS RxStopMinirdr como resultado de una solicitud FSCTL o IOCTL de una aplicación o servicio en modo de usuario para detener el minidirector de red. Esta llamada también se puede realizar desde el minidirector de red o, como parte del proceso de apagado, por el sistema operativo. Una vez recibida la llamada RxStopMinirdr , RDBSS completa el proceso llamando a la rutina MRxStop del minidirector de red.

La rutina MRxDevFcbXXXControlFile se usa para recibir solicitudes de una aplicación o servicio en modo de usuario para controlar el minidirector de red mediante la realización de llamadas IOCTL o FSCTL en un FCB de dispositivo.

Además, hay dos rutinas de E/S bajas que controlan las operaciones IOCTL y FSCTL en el objeto de controlador: MRxLowIOSubmit[LOWIO_OP_FSCTL] y MRxLowIOSubmit[LOWIO_OP_IOCTL].

Un minidirector de red también puede usar estas rutinas de E/S bajas para proporcionar control y administración del minidirector de red desde una aplicación o servicio en modo de usuario.

En la tabla siguiente se enumeran las rutinas que puede implementar un minidirector de red para las operaciones de inicio, detención y control de dispositivos.

Rutina Descripción
MRxDevFcbXXXControlFile

RDBSS llama a esta rutina para pasar una solicitud de control FCB de dispositivo al minidirector de red. RDBSS emite esta llamada en respuesta a la recepción de una IRP_MJ_DEVICE_CONTROL, IRP_MJ_FILE_SYSTEM_CONTROL o IRP_MJ_INTERNAL_DEVICE_CONTROL en un FCB de dispositivo.

MRxStart

RDBSS llama a esta rutina para iniciar el minidirector de red.

MRxStop

RDBSS llama a esta rutina para detener el minidirector de red.