IOCTL_STORAGE_EJECTION_CONTROL IOCTL (ntddstor.h)
メディアの削除を防ぐためにデバイスをロックします。 ドライバーがドライブの使用中にメディアが削除されないようにできる場合、ドライバーはメディアを取り出すメカニズムを無効または有効にして、ドライブをロックします。 呼び出し元は、この要求を送信するために、FILE_READ_ATTRIBUTESでデバイスを開く必要があります。
IOCTL_STORAGE_MEDIA_REMOVALとは異なり、ドライバーは呼び出し元による IOCTL_STORAGE_EJECTION_CONTROL 要求を追跡し、同じ呼び出し元からロック要求を受信していないロック解除要求を無視するため、他の呼び出し元がドライブのロックを解除できなくなります。
リムーバブル メディア デバイスのドライバー - この IOCTL をサポートするには、次の操作を行う必要があります。
- デバイス オブジェクト拡張機能で、呼び出し元によってタグ付けされたロック数を保持します。
- 物理デバイスごとのロック数を保持します。
- この IOCTL で呼び出された場合、メディアの削除を禁止するフラグが設定されている場合は、カウントをインクリメントします。フラグがクリアされ、ドライバーが同じ呼び出し元からロック要求を以前に受信した場合は、カウントを減らします。
- すべてのロックカウントがゼロでない限り、メディアを削除しないようにします。
メディアの削除ロックが正しく解放されるように、クラス ドライバーは、IOCTL_STORAGE_EJECTION_CONTROLでメディアをロックする呼び出し元を追跡します。 呼び出し元がデバイスのロックを解除せずに終了した場合、クラス ドライバーはデバイスのロックを解除します。
メジャー コード
入力バッファー
Irp- >AssociatedIrp.SystemBuffer のバッファーにはブール値が含まれており、ドライバーがドライブ内のメディアをロックする必要があることを示す true 。
入力バッファーの長さ
ブール値の長さ。
出力バッファー
何一つ。
出力バッファーの長さ
何一つ。
状態ブロック
情報 フィールドは 0 に設定されます。 状態 フィールドはSTATUS_SUCCESSに設定されているか、場合によってはSTATUS_INVALID_DEVICE_REQUEST、STATUS_NO_MEDIA_IN_DEVICE、またはSTATUS_DEVICE_NOT_CONNECTEDに設定されます。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddstor.h (Ntddstor.h を含む) |