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
ChangerInitializeElementStatus
IOCTL_CHANGER_GET_ELEMENT_STATUS
IOCTL_CHANGER_GET_PRODUCT_DATA