FSCTL_ALLOW_EXTENDED_DASD_IO IOCTL (winioctl.h)

パーティションの読み取りまたは書き込みの呼び出しに対して I/O 境界チェックを実行しないように、ファイル システム ドライバーに通知します。 代わりに、境界チェックはデバイス ドライバーによって実行されます。

この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。

C++
BOOL DeviceIoControl(
  (HANDLE) hDevice,              // handle to device
  FSCTL_ALLOW_EXTENDED_DASD_IO,  // dwIoControlCodeNULL,                          // lpInBuffer0,                             // nInBufferSizeNULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
  (LPOVERLAPPED) lpOverlapped    // OVERLAPPED structure
);

注釈

FSCTL_ALLOW_EXTENDED_DASD_IO制御コードを使用する呼び出しは、ハード ディスク ドライブとファイル システムの基になる構造に精通しているプログラマが慎重に使用する必要があります。 パーティションに対する後続の書き込み操作の不適切な使用や不正確なチェックにより、パーティション上のデータが破損したり、パーティション全体が破壊されたりする可能性があります。

FSCTL_ALLOW_EXTENDED_DASD_IOコントロール コードは、指定されたハンドルで行われた読み取りまたは書き込み呼び出しで I/O 境界チェックを実行しないようにファイル システム ドライバーに通知するために使用されます。 FSCTL_ALLOW_EXTENDED_DASD_IO では、パーティションの最初のセクター (ブート パラメーター ブロック) とパーティションの最初の有用なセクターの間に存在する可能性があるパーティションの一部である非表示セクターにアクセスできます。 FSCTL_ALLOW_EXTENDED_DASD_IO では、最後に役立つクラスターとパーティションの末尾の間に存在する可能性がある、失われたクラスターへのアクセスも許可されます。

この操作の後に発行された I/O 要求は、デバイス ドライバーに直接渡されます。 これらの後続の呼び出しでパーティション境界を超える要求データが呼び出されると、ドライバーによってエラーが発生します。

この操作に対する重複した I/O の影響については、 DeviceIoControl の「解説」セクションを参照してください。

パーティションへのハンドルを取得するには、 lpFileName パラメーターを次の形式の文字列に設定して CreateFile を呼び出します。

\.\X:

ここで 、X はドライブ文字です。

CreateFile を呼び出すアプリケーションでは、CreateFiledwShareMode パラメーターにFILE_SHARE_READフラグとFILE_SHARE_WRITE フラグも指定する必要があります。 詳細については、「 CreateFile」の「ディスク デバイス」セクションを参照してください。

ドライブのパーティション構造を決定し、システムがパーティションを認識するかどうかを判断するには、必要に応じて 、IOCTL_DISK_GET_DRIVE_LAYOUT_EX または IOCTL_DISK_GET_DRIVE_LAYOUT 制御コードを使用します。 1 つのパーティションに関する同様の情報については、必要に応じて 、IOCTL_DISK_GET_PARTITION_INFO_EX または IOCTL_DISK_GET_PARTITION_INFO 制御コードを使用します。 クラスターのサイズを決定するには、必要に応じて GetDiskFreeSpaceEx または GetDiskFreeSpace 関数を使用します。

Windows Server 2012では、この関数は次のテクノロジでサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル いいえ
SMB 3.0 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有 (SO) を使う SMB 3.0 いいえ
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) はい

必要条件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header winioctl.h (Windows.h を含む)

こちらもご覧ください

CreateFile

DeviceIoControl

ファイル管理の制御コード

GetDiskFreeSpace

GetDiskFreeSpaceEx

IOCTL_DISK_GET_DRIVE_LAYOUT

IOCTL_DISK_GET_DRIVE_LAYOUT_EX

IOCTL_DISK_GET_PARTITION_INFO

IOCTL_DISK_GET_PARTITION_INFO_EX

OVERLAPPED