Compartir a través de


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

ChangerError

ChangerExchangeMedium

ChangerGetElementStatus

ChangerGetParameters

ChangerGetProductData

ChangerGetStatus

ChangerInitialize

ChangerInitializeElementStatus

ChangerMoveMedium

ChangerPerformDiagnostics

ChangerQueryVolumeTags

ChangerReinitializeUnit

ChangerSetAccess

ChangerSetPosition

IOCTL_CHANGER_EXCHANGE_MEDIUM

IOCTL_CHANGER_GET_ELEMENT_STATUS

IOCTL_CHANGER_GET_PARAMETERS

IOCTL_CHANGER_GET_PRODUCT_DATA

IOCTL_CHANGER_GET_STATUS

IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS

IOCTL_CHANGER_MOVE_MEDIUM

IOCTL_CHANGER_SET_ACCESS

IOCTL_CHANGER_SET_POSITION