次の方法で共有


FsRtlFastLock マクロ (ntifs.h)

FsRtlFastLock マクロは、ファイル システムとフィルター ドライバーによって使用され、ファイル ストリームのバイト範囲ロックを要求します。

構文

BOOLEAN
FsRtlFastLock( A1,   /* FileLock            */
               A2,   /* FileObject          */
               A3,   /* FileOffset          */
               A4,   /* Length              */
               A5,   /* ProcessId           */
               A6,   /* Key                 */
               A7,   /* FailImmediately     */
               A8,   /* ExclusiveLock       */
               A9,   /* Iosb                */
               A10,  /* Context             */
               A11   /* AlreadySynchronized */ )

パラメーター

A1

[入力] FileLock: ファイルの FILE_LOCK 構造体へのポインター。 この構造体は、FsRtlAllocateFileLock または FsRtlInitializeFileLock の以前の呼び出しによって初期化されている必要があります。

A2

[入力] FileObject: 開いているファイルの FILE_OBJECT へのポインター。 ファイル オブジェクトは、GENERIC_READまたはファイル (またはその両方) へのアクセスをGENERIC_WRITEして作成されている必要があります。

A3

[入力] FileOffset: ロックする範囲のファイル内の開始バイト オフセットを指定する変数へのポインター。

A4

[入力] 長さ: ロックする範囲の長さをバイト単位で指定する変数へのポインター。

A5

[入力] ProcessId: バイト範囲ロックを要求するプロセスの EPROCESS プロセス ID へのポインター。

A6

[入力] キー: バイト範囲ロックに割り当てるキー。

A7

[入力] FailImmediately: ロックをすぐに許可できない場合にロック要求を失敗させるかどうかを指定するブール値。 要求が許可されるまで呼び出し元を待機状態にできる場合は、 FailImmediately を FALSE に設定します。 できない場合は、 FailImmediately を TRUE に設定します。

A8

[入力] ExclusiveLock: 排他ロックが要求された場合は TRUE、共有ロックが要求された場合は FALSE に設定されます。

A9

[out] Iosb: ロック要求に関する状態情報を受け取る呼び出し元によって割り当てられた IO_STATUS_BLOCK 構造体へのポインター。

A10

[入力] Context: バイト範囲ロックを解放するときに使用するコンテキストへの省略可能なポインター。

A11

[入力] AlreadySynchronized: このパラメーターは廃止されましたが、レガシ ドライバーとの互換性のために保持されます。

戻り値

なし

解説

FsRtlFastLock マクロを使用すると、呼び出し元は、指定したファイルの領域に対してバイト範囲ロックを取得します。

FsRtlFastLock は TRUE を返し、 Iosb が指すIO_STATUS_BLOCK構造体がロック操作に関する状態情報を受信したことを示します。それ以外の場合は FALSE を返します。

Iosb が指す構造体の内容を調べるには、NT_STATUS マクロを使用します。

要件

要件
対象プラットフォーム デスクトップ
Header ntifs.h (Ntifs.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock