Función ChangerMoveMedium (mcd.h)
ChangerMoveMedium controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_MOVE_MEDIUM.
Sintaxis
NTSTATUS ChangerMoveMedium(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
Parámetros
[in] DeviceObject
Puntero al objeto de dispositivo que representa el modificador.
[in] Irp
Puntero al IRP.
Valor devuelto
ChangerMoveMedium devuelve el estado devuelto por el controlador de puerto del sistema o uno de los valores siguientes:
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_DEVICE_REQUEST
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
STATUS_SOURCE_ELEMENT_EMPTY
Comentarios
Esta rutina es necesaria.
ChangerMoveMedium mueve un elemento multimedia de un elemento a otro.
El controlador de clase changer comprueba la longitud del búfer de entrada en la ubicación de la pila de E/S antes de llamar a ChangerMoveMedium. Irp-SystemBuffer>apunta a una estructura de CHANGER_MOVE_MEDIUM que indica el elemento de transporte, el origen, el destino y si se va a voltear el medio.
ChangerMoveMedium comprueba primero que las direcciones del elemento de transporte, origen y destino son válidas y, a continuación, convierte las direcciones de elementos de base cero en direcciones específicas del dispositivo. A continuación, crea una SRB con un CDB para mover el elemento de medio y enviarlo al controlador de puerto del sistema.
ChangerMoveMedium establece el campo Información del bloque de estado de E/S en sizeof(CHANGER_MOVE_MEDIUM) antes de volver al controlador de clase del modificador.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | mcd.h (incluye Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |