次の方法で共有


IOCTL_STORAGE_MEDIA_REMOVAL IOCTL (ntddstor.h)

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

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

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

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

Irp-AssociatedIrp.SystemBuffer> のバッファーにはブール値が含まれています。TRUE は、ドライバーがドライブ内のメディアをロックする必要があることを示します。

入力バッファーの長さ

ブール値の長さ。

出力バッファー

[なし] :

出力バッファーの長さ

[なし] :

ステータス ブロック

[情報] フィールドは 0 に設定されます。 [状態] フィールドはSTATUS_SUCCESSに設定されているか、場合によってはSTATUS_INVALID_DEVICE_REQUEST、STATUS_NO_MEDIA_IN_DEVICE、またはSTATUS_DEVICE_NOT_CONNECTEDに設定されます。

要件

要件
Header ntddstor.h (Ntddstor.h を含む)

こちらもご覧ください

IOCTL_STORAGE_EJECTION_CONTROL