Поделиться через


структура 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

Указатель на подпрограмму драйвера мини-класса средства изменения, которая выполняет диагностические тесты на устройстве. Эта подпрограмма имеет следующий прототип:

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

ChangerGetParameters

Указатель на подпрограмму драйвера мини-класса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_GET_PARAMETERS. Эта подпрограмма имеет следующий прототип:

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

ChangerGetStatus

Указатель на подпрограмму драйвера мини-класса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_GET_STATUS. Эта подпрограмма имеет следующий прототип:

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

ChangerGetProductData

Указатель на подпрограмму драйвера мини-класса средства изменения, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_GET_PRODUCT_DATA. Эта подпрограмма имеет следующий прототип:

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

ChangerSetAccess

Указатель на подпрограмму драйвера мини-класса средства изменения, которая обрабатывает аспекты IRP управления устройствами с помощью кода IOCTL IOCTL_CHANGER_SET_ACCESS. Эта подпрограмма имеет следующий прототип:

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

ChangerGetElementStatus

Указатель на подпрограмму драйвера мини-класса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_GET_ELEMENT_STATUS. Эта подпрограмма имеет следующий прототип:

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

ChangerInitializeElementStatus

Указатель на подпрограмму драйвера мини-класса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS. Эта подпрограмма имеет следующий прототип:

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

ChangerSetPosition

Указатель на подпрограмму драйвера мини-класса средства изменения, которая обрабатывает аспекты IRP управления устройствами с помощью кода IOCTL IOCTL_CHANGER_SET_POSITION. Эта подпрограмма имеет следующий прототип:

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

ChangerExchangeMedium

Указатель на подпрограмму драйвера мини-класса средства изменения, которая обрабатывает аспекты IRP управления устройствами с помощью кода IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM. Эта подпрограмма имеет следующий прототип:

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

ChangerMoveMedium

Указатель на подпрограмму драйвера миникласса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_MOVE_MEDIUM. Эта подпрограмма имеет следующий прототип:

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

ChangerReinitializeUnit

Указатель на подпрограмму драйвера миникласса средства изменения, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT. Эта подпрограмма имеет следующий прототип:

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

ChangerQueryVolumeTags

Указатель на подпрограмму драйвера мини-класса, которая обрабатывает аспекты IRP для управления устройством с помощью кода IOCTL IOCTL_CHANGER_QUERY_VOLUME_TAGS. Эта подпрограмма имеет следующий прототип:

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