共用方式為


MCD_INIT_DATA結構 (mcd.h)

changer miniclass 驅動程式會填入MCD_INIT_DATA結構,其中包含其內部命令處理例程的指標,並將其傳遞至 changer 類別驅動程式。

語法

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;

成員

InitDataSize

這個結構的大小,以位元組為單位。

ChangerAdditionalExtensionSize

changer miniclass 驅動程式例程的指標,此例程會傳回 changer miniclass 驅動程式所需的位元組數目,才能將裝置特定資訊儲存在裝置擴充功能中。 此例程具有下列原型:

typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
  IN VOID
  );

ChangerInitialize

changer miniclass 驅動程式例程的指標,該例程會執行miniclass驅動程式特定的初始化,並讀取變更程式以接收其他要求。 此例程具有下列原型:

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

ChangerError

執行裝置特定錯誤處理之 changer miniclass 驅動程式例程的指標。 此例程具有下列原型:

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

ChangerPerformDiagnostics

在裝置上執行診斷測試之 changer miniclass 驅動程式例程的指標。 此例程具有下列原型:

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

ChangerGetParameters

使用 IOCTL 程式代碼 IOCTL_CHANGER_GET_PARAMETERS處理裝置控制項 IRP 裝置特定層面的 changer miniclass 驅動程式例程指標。 此例程具有下列原型:

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

ChangerGetStatus

使用 IOCTL 程式代碼 IOCTL_CHANGER_GET_STATUS處理裝置控制 IRP 裝置特定層面的 changer miniclass 驅動程式例程指標。 此例程具有下列原型:

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

ChangerGetProductData

使用 IOCTL 程式代碼 IOCTL_CHANGER_GET_PRODUCT_DATA處理裝置控制項 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerSetAccess

使用IOCTL程式代碼 IOCTL_CHANGER_SET_ACCESS處理裝置控制元件 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerGetElementStatus

使用 IOCTL 程式代碼 IOCTL_CHANGER_GET_ELEMENT_STATUS處理裝置控制項 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerInitializeElementStatus

使用 IOCTL 程式代碼 IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS處理裝置控制項 IRP 特定層面的 changer miniclass 驅動程式例程指標。 此例程具有下列原型:

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

ChangerSetPosition

使用 IOCTL 程式代碼 IOCTL_CHANGER_SET_POSITION處理裝置控制項 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerExchangeMedium

使用 IOCTL 程式代碼 IOCTL_CHANGER_EXCHANGE_MEDIUM處理裝置控制項 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerMoveMedium

使用 IOCTL 程式代碼 IOCTL_CHANGER_MOVE_MEDIUM處理裝置控制項 IRP 特定層面的 changer miniclass 驅動程式例程指標。 此例程具有下列原型:

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

ChangerReinitializeUnit

使用IOCTL程式代碼 IOCTL_CHANGER_REINITIALIZE_TRANSPORT處理裝置控制項 IRP 裝置特定層面的變更迷你類別驅動程式例程指標。 此例程具有下列原型:

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

ChangerQueryVolumeTags

變更迷你類別驅動程式例程的指標,此例程會使用 IOCTL_CHANGER_QUERY_VOLUME_TAGS 的 IOCTL 程式代碼來處理裝置控制項 IRP 的裝置特定層面。 此例程具有下列原型:

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

備註

此結構僅供 Windows XP 和更新版本的作業系統中的變更程式驅動程式使用。

規格需求

需求
標頭 mcd.h (包含 Mcd.h)

另請參閱

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