Compartir a través de


Función ChangerSetPosition (mcd.h)

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

Sintaxis

NTSTATUS ChangerSetPosition(
  [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 la configuración de la posición del elemento de transporte, ChangerSetPosition devuelve el estado devuelto por el controlador de puerto del sistema o uno de los valores siguientes:

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Si el modificador no admite establecer la posición del elemento de transporte, ChangerSetPosition devuelve STATUS_INVALID_DEVICE_REQUEST.

Comentarios

Esta rutina es necesaria.

ChangerSetPosition establece el mecanismo de transporte robotizado del modificador en el destino especificado, normalmente para optimizar el movimiento o el intercambio de medios colocando primero el transporte.

La marca CHANGER_POSITION_TO_ELEMENT en Características0 de GET_CHANGER_PARAMETERS indica si el modificador admite esta funcionalidad.

El controlador de clase del modificador comprueba la longitud del búfer de entrada en la ubicación de la pila de E/S antes de llamar a ChangerSetPosition. Irp-SystemBuffer> apunta a una estructura de CHANGER_SET_POSITION como parámetro de entrada que indica el elemento de transporte y el destino que se va a establecer.

ChangerSetPosition comprueba primero que las direcciones del elemento de transporte y destino son válidas y convierte las direcciones de elementos de base cero en direcciones específicas del dispositivo. A continuación, compila una SRB con un CDB para colocar el elemento y enviarlo al controlador de puerto del sistema.

ChangerSetPosition establece el campo Información del bloque de estado de E/S en sizeof(CHANGER_SET_POSITION) 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

Consulte también

, IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION