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 |