次の方法で共有


ZwUnlockFile 関数 (ntifs.h)

ZwUnlockFile ルーチンは、ファイル内のバイト範囲ロックのロックを解除します。

構文

NTSYSAPI NTSTATUS ZwUnlockFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock,
  [in]  PLARGE_INTEGER   ByteOffset,
  [in]  PLARGE_INTEGER   Length,
  [in]  ULONG            Key
);

パラメーター

[in] FileHandle

バイト範囲がロック解除されるファイルを表すファイル オブジェクトのハンドル。

[out] IoStatusBlock

最終的な状態を含む IO_STATUS_BLOCK 構造体へのポインター。

[in] ByteOffset

ロック解除するバイト範囲の開始バイト オフセットを指定する変数へのポインター。

[in] Length

ロック解除するバイト範囲の長さをバイト単位で指定する変数へのポインター。

[in] Key

関連するロックのグループを記述するために使用される呼び出し元割り当て値。 この値は 0 に設定する必要があります。

戻り値

ZwUnlockFile ルーチンは、成功した場合にSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。 可能な NTSTATUS 値は次のとおりです。

リターン コード 形容
STATUS_RANGE_NOT_LOCKED 指定されたバイト範囲はロックされていません。

備考

ZwUnlockFile ルーチンは、ByteOffset および Length 引数で指定されたバイト範囲を受け取ります。 この範囲は、ZwUnlockFile ルーチンの 1 回の呼び出しでロックされていたファイル内のバイト範囲と同じである必要があります。 ZwUnlockFileへの 1 回の呼び出しで、以前にロックされていた 2 つの隣接する範囲のロックを解除 することはできません。 また、ZwUnlockFile ルーチンへの 1 回の呼び出しで以前にロックされていた範囲の一部のロックを解除することもできません。

ZwUnlockFile の呼び出し元は、IRQL = PASSIVE_LEVEL で実行され、特殊なカーネル API が有効になっている 必要があります**

手記

ZwUnlockFile 関数の呼び出しがユーザー モードで発生する場合は、"ZwUnlockFile" ではなく"NtUnlockFile" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 7
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h、FltKernel.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

ZwLockFile