Compartir a través de


Función ChangerExchangeMedium (mcd.h)

ChangerExchangeMedium controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM.

Sintaxis

NTSTATUS ChangerExchangeMedium(
  [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

Si el modificador admite el intercambio de medios, ChangerExchangeMedium devuelve el estado devuelto por el controlador de puerto del sistema o uno de los siguientes valores:

STATUS_SUCCESS

STATUS_DESTINATION_ELEMENT_FULL

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_SOURCE_ELEMENT_EMPTY

Si el modificador no admite el intercambio de medios, ChangerExchangeMedium devuelve STATUS_INVALID_DEVICE_REQUEST.

Comentarios

Esta rutina es necesaria.

ChangerExchangeMedium mueve un elemento multimedia de un elemento de origen a un destino y desde ese destino a otro destino. El origen y el segundo destino suelen ser los mismos, lo que da lugar a un simple intercambio de medios.

La marca CHANGER_EXCHANGE_MEDIA en Características0 de la estructura de GET_CHANGER_PARAMETERS indica si el cambiador admite esta funcionalidad. Un cambiador que admite el intercambio de medios normalmente tiene dos mecanismos de selector en un solo elemento de transporte o al menos dos elementos de transporte. Un modificador que tiene un único mecanismo de selector puede admitir el intercambio de medios a través de la emulación del comando.

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 la rutina ChangerExchangeMedium del controlador de miniclase. Irp-SystemBuffer> apunta a una estructura de CHANGER_EXCHANGE_MEDIUM como parámetro de entrada que indica el elemento de transporte y el destino que se va a establecer.

ChangerExchangeMedium comprueba primero que las direcciones de elemento de transporte, origen y destino son válidas y, a continuación, convierte las direcciones de elementos de base cero en direcciones de elemento específicas del dispositivo. A continuación, compila un SRB con un CDB para intercambiar el medio y lo envía al controlador de puerto del sistema.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado mcd.h (incluya Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Consulte también

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS