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 |