次の方法で共有


MCD_INIT_DATA 構造体 (mcd.h)

changer ミニクラス ドライバーは、内部コマンド処理ルーチンへのポインターを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

デバイス固有のエラー処理を行う changer ミニクラス ドライバー ルーチンへのポインター。 このルーチンには、次のプロトタイプがあります。

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 のデバイス固有の側面を処理する changer ミニクラス ドライバー ルーチンへのポインター。 このルーチンには、次のプロトタイプがあります。

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

ChangerGetStatus

IOCTL コード IOCTL_CHANGER_GET_STATUSを使用してデバイス制御 IRP のデバイス固有の側面を処理する changer ミニクラス ドライバー ルーチンへのポインター。 このルーチンには、次のプロトタイプがあります。

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