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 の呼び出し元は、IRQL = PASSIVE_LEVEL で実行され、特殊なカーネル API が有効になっている 必要があります**。
手記
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h、FltKernel.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |