FltAcquireResourceShared ルーチンは、呼び出し元のスレッドによる共有アクセス用に指定されたリソースを取得します。
構文
VOID FLTAPI FltAcquireResourceShared(
[in/out] PERESOURCE Resource
);
パラメーター
[in/out] Resource
不透明な ERESOURCE 構造体へのポインター。 この構造体は、非ページ プールから呼び出し元によって割り当てられ、ExInitializeResourceLiteまたは ExReinitializeResourceLite呼び出して初期化する必要があります。
戻り値
何一つ。
備考
FltAcquireResourceShared ルーチンは、呼び出し元のスレッドによる共有アクセス用に指定されたリソースを取得します。
呼び出し元に特定のリソースへの共有アクセス権が付与されるかどうかは、次によって異なります。
リソースが現在所有されていない場合は、現在のスレッドに対してすぐに共有アクセスが許可されます。
呼び出し元が既にリソースを取得している場合 (共有または排他アクセスの場合)、現在のスレッドには同じ種類のアクセスが再帰的に付与されます。 この呼び出しを行しても、呼び出し元の特定のリソースの排他的所有権は共有に変換されないことに注意してください。
リソースが現在、別のスレッドによって共有されているとして所有されていて、リソースへの排他アクセスを待機しているスレッドがない場合、共有アクセス権はすぐに呼び出し元に付与されます。 排他的待機者がある場合、呼び出し元は待機状態になります。
リソースが現在別のスレッドによって排他的として所有されている場合、または排他アクセスを待機している別のスレッドがあり、呼び出し元がまだリソースへの共有アクセス権を持っていない場合、現在のスレッドはリソースを取得できるようになるまで待機状態になります。
FltAcquireResourceShared は、通常のカーネル APC 配信を無効にする exAcquireResourceSharedLiteのラッパーです。
FltAcquireResourceShared は通常のカーネル APC 配信を無効にするため、FltAcquireResourceShared を呼び出す前に、KeEnterCriticalRegion または FsRtlEnterFileSystem呼び出す必要はありません。
取得後にリソースを解放するには、FltReleaseResource呼び出します。 FltAcquireResourceShared 正常に呼び出されるたびに、FltReleaseResource への後続の呼び出し照合する必要があります。
排他アクセス用のリソースを取得するには、FltAcquireResourceExclusive呼び出します。
システムのリソース 一覧からリソースを削除するには、ExDeleteResourceLite呼び出します。
再利用するためにリソースを初期化するには、ExReinitializeResourceLite呼び出します。
ERESOURCE 構造体の詳細については、「ERESOURCE ルーチンの概要」を参照してください。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP SP2 |
| サポートされる最小サーバー | Windows Server 2003 SP1 |
| ヘッダー | fltkernel.h |
| ライブラリ | FltMgr.lib |
| IRQL | IRQL <= APC_LEVEL |