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

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