MCD_INIT_DATA 结构 (mcd.h)
变更器微型类驱动程序使用指向其内部命令处理例程的指针填充MCD_INIT_DATA结构,并将其传递给变更器类驱动程序。
语法
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
指向变更器微型类驱动程序例程的指针,该例程返回变更器微型类驱动程序在设备扩展中存储特定于设备的信息所需的字节数。 此例程具有以下原型:
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
指向在设备上执行诊断测试的 changer 微型类驱动程序例程的指针。 此例程具有以下原型:
typedef
NTSTATUS
(*CHANGER_PERFORM_DIAGNOSTICS)(
IN PDEVICE_OBJECT DeviceObject,
OUT PWMI_CHANGER_PROBLEM_DEVICE_ERROR changerDeviceError
);
ChangerGetParameters
指向变更器微型类驱动程序例程的指针,该例程使用 IOCTL 代码 IOCTL_CHANGER_GET_PARAMETERS处理设备控制 IRP 的设备特定方面。 此例程具有以下原型:
typedef
NTSTATUS
(*CHANGER_COMMAND_ROUTINE)(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ChangerGetStatus
指向变更器微型类驱动程序例程的指针,该例程使用 IOCTL 代码 IOCTL_CHANGER_GET_STATUS处理设备控制 IRP 的设备特定方面。 此例程具有以下原型:
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 的设备特定方面。 此例程具有以下原型:
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 的设备特定方面。 此例程具有以下原型:
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 和更高版本的操作系统中的变更器驱动程序使用。
要求
要求 | 值 |
---|---|
Header | mcd.h (包括 Mcd.h) |
另请参阅
ChangerAdditionalExtensionSize
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA