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
ドライブのパーティション構造を決定し、システムがパーティションを認識するかどうかを判断するには、必要に応じて、IOCTL_DISK_GET_DRIVE_LAYOUT_EX または IOCTL_DISK_GET_DRIVE_LAYOUT 制御コードを使用します。 1 つのパーティションに関する同様の情報については、必要に応じて、IOCTL_DISK_GET_PARTITION_INFO_EX または IOCTL_DISK_GET_PARTITION_INFO コントロール コードを使用します。 クラスターのサイズを確認するには、必要に応じて GetDiskFreeSpaceEx
Windows Server 2012 では、この関数は次のテクノロジでサポートされています。
テクノロジー | サポート |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | いいえ |
SMB 3.0 透過的フェールオーバー (TFO) | いいえ |
SMB 3.0 とスケールアウト ファイル共有 (SO) | いいえ |
クラスター共有ボリューム ファイル システム (CsvFS) | はい |
回復性のあるファイル システム (ReFS) | はい |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ヘッダー | winioctl.h (Windows.h を含む) |
関連項目
CreateFile の
DeviceIoControl の
GetDiskFreeSpace を
GetDiskFreeSpaceEx を
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
IOCTL_DISK_GET_PARTITION_INFO_EX
重複する を