次の方法で共有


ChangerReinitializeUnit 関数 (mcd.h)

ChangerReinitializeUnit は、IOCTL コード IOCTL_CHANGER_REINITIALIZE_TRANSPORTを使用して、デバイスコントロール IRP のデバイス固有の側面を処理します。

構文

NTSTATUS ChangerReinitializeUnit(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

パラメーター

[in] DeviceObject

チェンジャーを表すデバイス オブジェクトへのポインター。

[in] Irp

IRP へのポインター。

戻り値

changer がトランスポート要素の再検証をサポートしている場合、ChangerReinitializeUnit は、システム ポート ドライバーによって返されるSTATUS_XXX 値、または次のいずれかの値を返します。

STATUS_SUCCESS

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

changer がトランスポート要素の再検証をサポートしていない場合、ChangerReinitializeUnit はSTATUS_INVALID_DEVICE_REQUESTを返します。

備考

このルーチンは必須です。

ChangerReinitializeUnit 、changer はそのトランスポート要素を再調整します。 チェンジャーによっては、トランスポートが "自宅" の位置に戻る場合があります。 通常、changer クラス ドライバーは、changerReinitializeUnit 、チェンジャーの電源がオンになった後、または呼び出し元のアプリケーションが回復操作を開始した後に呼び出します。 GET_CHANGER_PARAMETERSFeatures0 のCHANGER_DEVICE_REINITIALIZE_CAPABLE フラグは、このような状況でチェンジャーのトランスポートが再調整をサポートしているかどうかを示します。

changer クラス ドライバーは、ChangerReinitializeUnitを呼び出す前に、I/O スタックの場所で入力バッファーの長さを確認します。 Irp->SystemBuffer は、再調整する要素を示す CHANGER_ELEMENT 構造体を指します。

ChangerReinitializeUnit 、トランスポート要素を配置してシステム ポート ドライバーに送信する CDB を使用して SRB をビルドします。

ChangerReinitializeUnit 、changer クラス ドライバーに戻る前に、I/O ステータス ブロックの Information フィールドを sizeof (CHANGER_ELEMENT) に設定します。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー mcd.h (Mcd.h、Ntddchgr.h を含む)
IRQL PASSIVE_LEVEL

関連項目

IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS