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 |