Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
ChangerReinitializeUnit controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT.
Sintaxis
NTSTATUS ChangerReinitializeUnit(
[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 recalibración de un elemento de transporte, ChangerReinitializeUnit devuelve el valor STATUS_XXX devuelto por el controlador de puerto del sistema o uno de los siguientes valores:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
Si el modificador no admite la recalibración de un elemento de transporte, ChangerReinitializeUnit devuelve STATUS_INVALID_DEVICE_REQUEST.
Observaciones
Esta rutina es necesaria.
ChangerReinitializeUnit hace que el modificador recalibrate su elemento de transporte. Dependiendo del modificador, esto puede devolver el transporte a una posición "home". Normalmente, el controlador de clase del modificador llama a ChangerReinitializeUnit después de que el modificador se haya encendido o una aplicación que llama haya iniciado una operación de recuperación. La marca CHANGER_DEVICE_REINITIALIZE_CAPABLE de Features0 de GET_CHANGER_PARAMETERS indica si el transporte del modificador admite la recalibración en esas circunstancias.
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 ChangerReinitializeUnit. Irp:>SystemBuffer apunta a una estructura de CHANGER_ELEMENT que indica el elemento que se va a volver a almacenar en caché.
ChangerReinitializeUnit compila un SRB con un CDB para colocar el elemento de transporte y enviarlo al controlador de puerto del sistema.
ChangerReinitializeUnit establece el campo Information del bloque de estado de E/S en sizeof(CHANGER_ELEMENT) antes de volver al controlador de clase changer.
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Escritorio |
| encabezado de | mcd.h (incluya Mcd.h, Ntddchgr.h) |
| irQL | PASSIVE_LEVEL |