次の方法で共有


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

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

A11

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

戻り値

何一つ

備考

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

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

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

必要条件

要件 価値
ターゲット プラットフォーム の デスクトップ
ヘッダー ntifs.h (Ntifs.h を含む)
IRQL <= APC_LEVEL

関連項目

FILE_LOCK

FsRtlAllocateFileLock

FsRtlInitializeFileLock