estructura MCD_INIT_DATA (mcd.h)
El controlador de miniclase del modificador rellena la estructura de MCD_INIT_DATA con punteros a sus rutinas internas de procesamiento de comandos y las pasa al controlador de clase del modificador.
Sintaxis
typedef struct _MCD_INIT_DATA {
ULONG InitDataSize;
CHANGER_EXTENSION_SIZE ChangerAdditionalExtensionSize;
CHANGER_INITIALIZE ChangerInitialize;
CHANGER_ERROR_ROUTINE ChangerError;
CHANGER_PERFORM_DIAGNOSTICS ChangerPerformDiagnostics;
CHANGER_COMMAND_ROUTINE ChangerGetParameters;
CHANGER_COMMAND_ROUTINE ChangerGetStatus;
CHANGER_COMMAND_ROUTINE ChangerGetProductData;
CHANGER_COMMAND_ROUTINE ChangerSetAccess;
CHANGER_COMMAND_ROUTINE ChangerGetElementStatus;
CHANGER_COMMAND_ROUTINE ChangerInitializeElementStatus;
CHANGER_COMMAND_ROUTINE ChangerSetPosition;
CHANGER_COMMAND_ROUTINE ChangerExchangeMedium;
CHANGER_COMMAND_ROUTINE ChangerMoveMedium;
CHANGER_COMMAND_ROUTINE ChangerReinitializeUnit;
CHANGER_COMMAND_ROUTINE ChangerQueryVolumeTags;
} MCD_INIT_DATA, *PMCD_INIT_DATA;
Miembros
InitDataSize
Tamaño de esta estructura en bytes.
ChangerAdditionalExtensionSize
Puntero a la rutina del controlador de miniclase del modificador que devuelve el número de bytes que requiere el controlador de miniclase del modificador para almacenar información específica del dispositivo en la extensión del dispositivo. Esta rutina tiene el prototipo siguiente:
typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
IN VOID
);
ChangerInitialize
Puntero a la rutina del controlador de miniclase del modificador que realiza la inicialización específica del controlador de miniclase y prepara el modificador para recibir otras solicitudes. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_INITIALIZE)(
IN PDEVICE_OBJECT DeviceObject
);
ChangerError
Puntero a la rutina del controlador miniclase del modificador que realiza el procesamiento de errores específico del dispositivo. Esta rutina tiene el prototipo siguiente:
typedef
VOID
(*CHANGER_ERROR_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN NTSTATUS *Status,
IN BOOLEAN *Retry
);
ChangerPerformDiagnostics
Puntero a la rutina del controlador de miniclase del modificador que realiza pruebas de diagnóstico en el dispositivo. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
IN PDEVICE_OBJECT DeviceObject,
OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR changerDeviceError
);
ChangerGetParameters
Puntero a la rutina del controlador de miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_GET_PARAMETERS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetStatus
Puntero a la rutina del controlador de miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_GET_STATUS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetProductData
Puntero a una rutina de controlador de miniclase de modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_GET_PRODUCT_DATA. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetAccess
Puntero a una rutina de controlador miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_SET_ACCESS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetElementStatus
Puntero a una rutina de controlador de miniclase de modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerInitializeElementStatus
Puntero a una rutina de controlador miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetPosition
Puntero a una rutina de controlador de miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_SET_POSITION. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerExchangeMedium
Puntero a una rutina de controlador miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerMoveMedium
Puntero a una rutina de controlador miniclase de modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_MOVE_MEDIUM. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerReinitializeUnit
Puntero a una rutina de controlador miniclase del modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerQueryVolumeTags
Puntero a una rutina de controlador de miniclase de modificador que controla los aspectos específicos del dispositivo de un IRP de control de dispositivo con el código IOCTL de IOCTL_CHANGER_QUERY_VOLUME_TAGS. Esta rutina tiene el prototipo siguiente:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
Comentarios
El controlador de modificador usa esta estructura solo en Windows XP y sistemas operativos posteriores.
Requisitos
Requisito | Valor |
---|---|
Header | mcd.h (incluye Mcd.h) |
Consulte también
ChangerAdditionalExtensionSize
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA