次の方法で共有


IOCTL_STORAGE_MEDIA_REMOVAL IOCTL (ntddstor.h)

メディアの削除を防ぐためにデバイスをロックします。 ドライバーがドライブの使用中にメディアが削除されないようにできる場合は、デバイス上のメディアを取り出すメカニズム (呼び出し元が読み取りまたは書き込みアクセスのために開いている) を無効または有効にします。

ドライバーが呼び出し元によって要求を追跡する IOCTL_STORAGE_EJECTION_CONTROLとは異なり、ドライバーはロックカウントが既に 0 の場合にのみ、IOCTL_STORAGE_MEDIA_REMOVALロック解除要求を無視するため、呼び出し元はドライブのロックを解除できます。

この IOCTL をサポートできるリムーバブル メディア デバイスのドライバーは、次の操作を行う必要があります。

  1. デバイス オブジェクト拡張機能にロックカウントを保持します。
  2. 物理デバイスごとのロック数を保持します。
  3. この IOCTL で呼び出された場合、メディアの削除を禁止するフラグが設定されている場合は、カウントをインクリメントします。フラグがクリアされている場合は、カウントを減らします。
  4. すべてのロックカウントがゼロでない限り、メディアを削除しないようにします。

メジャー コード

IRP_MJ_DEVICE_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 を含む)

関連項目

IOCTL_STORAGE_EJECTION_CONTROL