FSCTL_FILE_LEVEL_TRIM IOCTL (winioctl.h)

ストレージ・システムが保管する必要のない指定されたファイル内の範囲を示します。

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // Handle to a file
  FSCTL_FILE_LEVEL_TRIM,            // dwIoControlCode
  (LPVOID) lpInBuffer,              // Input buffer
  (DWORD) nInBufferSize,            // Size of input buffer
  (LPVOID) lpOutBuffer,             // Output buffer
  (DWORD) nOutBufferSize,           // Size of output buffer
  (LPDWORD) lpBytesReturned,        // Number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

注釈

FSCTL_FILE_LEVEL_TRIM制御コードは、基になるストレージ システムのヒントです。 バイト範囲がトリミングされた場合、その範囲が後で再度読み取られる場合、返されるデータは、トリミング操作の前の元のデータ (ゼロ (0x00 バイト)、すべての 0 (0xff バイト)、またはこれらの組み合わせである可能性があります。 トリミング操作が基になるストレージ システムに渡される前に、入力範囲がページ境界 (32 ビット版では 4,096 バイト、Windows の x64 ベースのエディションでは 4,096 バイト、Windows のエディションでは 8,192 バイト) に合わせて縮小 Itanium-Based。

lpInBuffer パラメーターが指す入力バッファー内のFILE_LEVEL_TRIM構造に従うFILE_LEVEL_TRIM_RANGEエントリの処理中にエラーが発生した場合、lpOutBuffer パラメーターが指すFILE_LEVEL_TRIM_OUTPUT構造体の処理が停止し、NumRangesProcessed メンバーが正常に処理された範囲を示します。 NumRangesProcessedFILE_LEVEL_TRIM構造体の NumRanges メンバーの間の範囲は処理されませんでした。

FSCTL_FILE_LEVEL_TRIM制御コードは、暗号化または圧縮されたファイルと互換性がありません (GetFileAttributesFILE_ATTRIBUTE_ENCRYPTEDまたはFILE_ATTRIBUTE_COMPRESSEDを返します)、ERROR_INVALID_PARAMETERで失敗します。 スパース ファイル ( FILE_ATTRIBUTE_SPARSE_FILEで示されます) はサポートされていますが、割り当てられた範囲のみをトリミングできます。 BitLocker テクノロジによって暗号化されたボリューム上のファイルはサポートされますが、個別に暗号化されたファイルはサポートされません。

FSCTL_FILE_LEVEL_TRIM制御コードはトランザクションに参加しません。 トランザクション中 にFSCTL_FILE_LEVEL_TRIM 制御コードが処理され、トランザクションが中止された場合、トリミングはトランザクションと共にロールバックされません。

正常にトリミングされた範囲は、ファイルシステム キャッシュから削除されます。

トリミングされる範囲は、有効なデータ長 (VDL) を超えて、ファイルの終わり (EOF) までです。

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

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

要件

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

こちらもご覧ください