次の方法で共有


ChangerSetAccess 関数 (mcd.h)

ChangerSetAccess は 、IOCTL コード IOCTL_CHANGER_SET_ACCESSを使用して、デバイス制御 IRP のデバイス固有の側面を処理します。

構文

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

パラメーター

[in] DeviceObject

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

[in] Irp

IRP へのポインター。

戻り値

changer がアクセスの設定をサポートしている場合、 ChangerSetAccess は、システム ポート ドライバーによって返されるSTATUS_XXX 値または次のいずれかの値を返します。

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

changer がアクセスの設定をサポートしていない場合、ChangerSetAccess はSTATUS_INVALID_DEVICE_REQUESTを返します。

注釈

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

ChangerSetAccess は、チェンジャーの IEport、ドア、またはキーパッドをロックまたはロック解除し、IEport を拡張または取り消します。

changer クラス ドライバーは、 ChangerSetAccess を呼び出す前に、I/O スタックの場所で入力バッファーの長さを確認します。 Irp-SystemBuffer> は、設定する要素と実行する操作を示す入力パラメーターとして、CHANGER_SET_ACCESS構造体を指します。

ChangerSetAccess は 、最初にサポートされていない要素と操作を確認し、サポートされていない要素の適切な状態コードを返します。

に、ChangerSetAccess は、システムによって渡された 0 から始まる要素アドレスを、チェンジャーに必要なデバイス固有の要素アドレスに変換します。

最後に、 ChangerSetAccess は、指定された要素に対して指定された操作の CDB を使用して SRB をビルドし、システム ポート ドライバーに送信します。 使用するコマンドは、チェンジャーによって異なります。 たとえば、Exabyte ミニクラス ドライバーは SCSI コマンド PREVENT ALLOW MEDIUM REMOVAL を使用して、チェンジャー ドアをロックまたはロック解除し、MOVE MEDIUM を使用して IEport を拡張または取り消します。

要件

要件
対象プラットフォーム デスクトップ
Header mcd.h (Mcd.h、Ntddchgr.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS