Partager via


structure MCD_INIT_DATA (mcd.h)

Le pilote miniclass de changement remplit la structure MCD_INIT_DATA avec des pointeurs vers ses routines de traitement de commandes internes et les transmet au pilote de classe de changement.

Syntaxe

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;

Membres

InitDataSize

Taille de cette structure en octets.

ChangerAdditionalExtensionSize

Pointeur pour changer la routine de pilote miniclasse qui retourne le nombre d’octets requis par le pilote miniclass de changement pour stocker des informations spécifiques à l’appareil dans l’extension de périphérique. Cette routine a le prototype suivant :

typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
  IN VOID
  );

ChangerInitialize

Pointeur vers changer la routine de pilote miniclasse qui effectue une initialisation spécifique au pilote miniclasse et lit le changeur pour recevoir d’autres demandes. Cette routine a le prototype suivant :

typedef 
NTSTATUS
(*CHANGER_INITIALIZE)(
  IN PDEVICE_OBJECT  DeviceObject
  );

ChangerError

Pointeur vers changer la routine de pilote miniclasse qui effectue le traitement d’erreurs spécifique à l’appareil. Cette routine a le prototype suivant :

typedef
VOID
(*CHANGER_ERROR_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PSCSI_REQUEST_BLOCK  Srb,
  IN NTSTATUS  *Status,
  IN BOOLEAN  *Retry
  );

ChangerPerformDiagnostics

Pointeur vers changer la routine de pilote miniclasse qui effectue des tests de diagnostic sur l’appareil. Cette routine a le prototype suivant :

typedef 
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
  IN PDEVICE_OBJECT  DeviceObject,
  OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR  changerDeviceError
  );

ChangerGetParameters

Pointeur pour changer la routine de pilote miniclasse qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_GET_PARAMETERS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerGetStatus

Pointeur pour changer la routine de pilote miniclasse qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_GET_STATUS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerGetProductData

Pointeur vers une routine de pilote de miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_GET_PRODUCT_DATA. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerSetAccess

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_SET_ACCESS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerGetElementStatus

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerInitializeElementStatus

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerSetPosition

Pointeur vers une routine de pilote de miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_SET_POSITION. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerExchangeMedium

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerMoveMedium

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_MOVE_MEDIUM. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerReinitializeUnit

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

ChangerQueryVolumeTags

Pointeur vers une routine de pilote miniclasse changer qui gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL de IOCTL_CHANGER_QUERY_VOLUME_TAGS. Cette routine a le prototype suivant :

typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
  IN PDEVICE_OBJECT  DeviceObject,
  IN PIRP  Irp
  );

Remarques

Cette structure est utilisée par le pilote de changement dans Windows XP et les systèmes d’exploitation ultérieurs uniquement.

Exigences

Exigence Valeur
d’en-tête mcd.h (inclure Mcd.h)

Voir aussi

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