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
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA