UnlockFileEx 関数 (fileapi.h)

指定したファイル内のリージョンのロックを解除します。 この関数は、同期的にも非同期的にも動作できます。

構文

BOOL UnlockFileEx(
  [in]      HANDLE       hFile,
            DWORD        dwReserved,
  [in]      DWORD        nNumberOfBytesToUnlockLow,
  [in]      DWORD        nNumberOfBytesToUnlockHigh,
  [in, out] LPOVERLAPPED lpOverlapped
);

パラメーター

[in] hFile

ファイルへのハンドル。 ハンドルは、 GENERIC_READまたはGENERIC_WRITE アクセス権を使用 して 作成されている必要があります。 詳細については、「 ファイル のセキュリティとアクセス権」を参照してください。

dwReserved

予約済みパラメーター。は 0 である必要があります。

[in] nNumberOfBytesToUnlockLow

ロックを解除するバイト範囲の長さの下位部分。

[in] nNumberOfBytesToUnlockHigh

ロックを解除するバイト範囲の長さの上位部分。

[in, out] lpOverlapped

関数がロック解除要求と共に使用する OVERLAPPED 構造体へのポインター。 この構造体には、ロック解除範囲の先頭のファイル オフセットが含まれています。 hEvent メンバーを有効なハンドルまたは 0 に初期化する必要があります。 詳細については、「 同期 I/O と非同期 I/O」を参照してください。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合、戻り値は 0 または NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

ファイルの領域のロックを解除すると、以前に取得したファイルのロックが解除されます。 ロックを解除するリージョンは、既存のロックされているリージョンに正確に対応している必要があります。 ファイルの 2 つの隣接する領域を個別にロックしてから、両方のロックされたリージョンにまたがる 1 つのリージョンを使用してロックを解除することはできません。

CloseHandle 関数の処理が完了する前に、ロックが解放されます。

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

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

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー fileapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

ファイル内のバイト範囲のロックとロック解除

CreateFile

File Management 関数

LockFile

LockFileEx

OVERLAPPED

同期および非同期 I/O

UnlockFile