Compartir a través de


IOCTL_STORAGE_MEDIA_REMOVAL IOCTL (ntddstor.h)

Bloquea el dispositivo para evitar la eliminación de los medios. Si el controlador puede impedir que el medio se quite mientras la unidad está en uso, deshabilita o habilita el mecanismo que expulsa medios en un dispositivo, el autor de la llamada se ha abierto para el acceso de lectura o escritura.

A diferencia de IOCTL_STORAGE_EJECTION_CONTROL, para la que el controlador realiza el seguimiento de las solicitudes por llamador, el controlador omite IOCTL_STORAGE_MEDIA_REMOVAL desbloquea solicitudes solo si su recuento de bloqueos ya es cero, lo que permite que cualquier autor de llamada desbloquee la unidad.

Un controlador para un dispositivo multimedia extraíble que pueda admitir este IOCTL debe hacer lo siguiente:

  1. Mantenga un recuento de bloqueos en la extensión de objeto de dispositivo.
  2. Mantenga el recuento de bloqueos por dispositivo físico.
  3. Cuando se llama con este IOCTL, si se establece la marca para evitar quitar el medio, incremente el recuento; si la marca está desactivada, disminuya el recuento.
  4. Evite la eliminación de los medios a menos que todos los recuentos de bloqueos sean cero.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El búfer de Irp-AssociatedIrp.SystemBuffer> contiene un valor booleano, con TRUE que indica que el controlador debe bloquear el medio en la unidad.

Longitud del búfer de entrada

Longitud de un valor booleano.

Búfer de salida

Ninguno.

Longitud del búfer de salida

Ninguno.

Bloque de estado

El campo Información se establece en cero. El campo Estado se establece en STATUS_SUCCESS, o posiblemente en STATUS_INVALID_DEVICE_REQUEST, STATUS_NO_MEDIA_IN_DEVICE o STATUS_DEVICE_NOT_CONNECTED.

Requisitos

Requisito Valor
Header ntddstor.h (incluya Ntddstor.h)

Consulte también

IOCTL_STORAGE_EJECTION_CONTROL