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迷你類別驅動程式所需的位元組數目,才能將裝置特定資訊儲存在裝置擴充功能中。 此例程具有下列原型:
typedef
ULONG
(*CHANGER_EXTENSION_SIZE)(
IN VOID
);
ChangerInitialize
變更程式迷你類別驅動程式例程的指標,該例程會執行迷你類別驅動程式特定的初始化,並讀取變更程式以接收其他要求。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_INITIALIZE)(
IN PDEVICE_OBJECT DeviceObject
);
ChangerError
變更程式迷你類別驅動程式例程的指標,該例程會執行裝置特定的錯誤處理。 此例程具有下列原型:
typedef
VOID
(*CHANGER_ERROR_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PSCSI_REQUEST_BLOCK Srb,
IN NTSTATUS *Status,
IN BOOLEAN *Retry
);
ChangerPerformDiagnostics
變更程式迷你類別驅動程式例程的指標,該例程會在裝置上執行診斷測試。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
IN PDEVICE_OBJECT DeviceObject,
OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR changerDeviceError
);
ChangerGetParameters
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面的變更小型類別驅動程式例程指標 IOCTL_CHANGER_GET_PARAMETERS。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetStatus
使用IOCTL程式代碼處理裝置控制 IRP 裝置特定層面 IOCTL_CHANGER_GET_STATUS的變更小型類別驅動程式例程指標。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetProductData
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_GET_PRODUCT_DATA。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetAccess
變更程式迷你類別驅動程式例程的指標,此例程會使用 IOCTL 程式代碼處理裝置控制 IRP 的裝置特定層面,IOCTL_CHANGER_SET_ACCESS。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetElementStatus
使用IOCTL程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_GET_ELEMENT_STATUS。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerInitializeElementStatus
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerSetPosition
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_SET_POSITION。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerExchangeMedium
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_EXCHANGE_MEDIUM。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerMoveMedium
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_MOVE_MEDIUM。 此例程具有下列原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerReinitializeUnit
使用 IOCTL 程式代碼處理裝置控制 IRP 裝置特定層面之變更程式迷你類別驅動程式例程的指標 IOCTL_CHANGER_REINITIALIZE_TRANSPORT。 此例程具有下列原型:
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