Compartir a través de


IOCTL_MOUNTMGR_CHANGE_NOTIFY IOCTL (mountmgr.h)

Los clientes envían este IOCTL al administrador de montaje para informarse cada vez que haya un cambio en la base de datos de nombres de vínculo simbólico persistente del administrador de montaje.

El administrador de montaje mantiene un contador denominado EpicNumber que registra cuántos cambios se han producido en su base de datos de nombres persistente desde el último inicio. Los clientes envían un número al administrador de montaje con cada IRP de solicitud de notificación de cambio y el administrador de montaje responde de la siguiente manera:

  • Si el número proporcionado por el cliente no es igual a EpicNumber, el administrador de montaje devuelve STATUS_SUCCESS, lo que indica que se han producido cambios desde que el cliente comparó por última vez su número con el EpicNumber del administrador de montaje.

  • Si el número proporcionado por el cliente es igual a EpicNumber, el administrador de montaje interpreta esto como una solicitud para informarse del siguiente cambio en la base de datos de nombres persistente y pone en cola el IRP de notificación de cambio y devuelve STATUS_PENDING. Cada vez que se produce un cambio en la base de datos, el administrador de montaje completa todos los IRP de notificación de cambios pendientes, lo que informa a los clientes del cambio.

Se recomienda que un cliente que solo quiera informarse de los cambios en un volumen determinado se registre en la notificación del dispositivo de destino Plug and Play y observe GUID_IO_VOLUME_NAME_CHANGE.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El cliente del administrador de montaje inicializa la estructura MOUNTMGR_CHANGE_NOTIFY_INFO al principio del búfer en Irp-AssociatedIrp.SystemBuffer>.

Longitud del búfer de entrada

Parameters.DeviceIoControl.InputBufferLength en la ubicación de la pila de E/S del IRP indica el tamaño, en bytes, del búfer de entrada, que debe ser mayor o igual que sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).

Búfer de salida

El administrador de montaje devuelve el EpicNumber actual en la estructura MOUNTMGR_CHANGE_NOTIFY_INFO al principio del búfer en Irp-AssociatedIrp.SystemBuffer>.

Longitud del búfer de salida

Ninguno.

Búfer de entrada y salida

N/D

Longitud del búfer de entrada y salida

N/D

Bloque de estado

Si la operación se realiza correctamente, el campo Estado se establece en STATUS_SUCCESS y el campo Información se establece en sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO).

Si InputBufferLength es menor que sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO) o OutputBufferLength es menor que sizeof(MOUNTMGR_CHANGE_NOTIFY_INFO), el campo Estado se establece en STATUS_INVALID_PARAMETER.

Comentarios

Para obtener más información, vea Admitir solicitudes del Administrador de montaje en un controlador de clase de almacenamiento.

Requisitos

Requisito Valor
Header mountmgr.h (include Mountmgr.h)

Consulte también

MOUNTMGR_CHANGE_NOTIFY_INFO