次の方法で共有


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 コマンドを許可する中の削除を許可して、チェンジャー ドアをロックまたはロック解除し、MOVE MEDIUM IEport を拡張または取り消します。

必要条件

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

関連項目

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS