次の方法で共有


ExAcquireResourceSharedLite 関数 (wdm.h)

ExAcquireResourceSharedLite ルーチンは、呼び出し元スレッドによる共有アクセス用の指定されたリソースを取得します。

構文

BOOLEAN ExAcquireResourceSharedLite(
  [in, out] PERESOURCE Resource,
  [in]      BOOLEAN    Wait
);

パラメーター

[in, out] Resource

取得するリソースへのポインター。

[in] Wait

リソースをすぐに取得できない場合のルーチンの動作を指定します。 TRUE の場合、呼び出し元はリソースを取得できるようになるまで待機状態になります。 FALSE の場合、リソースを取得できるかどうかに関係なく、ルーチンは直ちにを返します。

戻り値

呼び出し元は、 ExReleaseResourceLite または ExReleaseResourceForThreadLite を呼び出すことによって、リソースを解放できます。

ExAcquireResourceSharedLite は、リソースが取得された場合 (またはいつ) に TRUE を 返します。 入力 WaitFALSE で、共有アクセスをすぐに許可できない場合、このルーチンは FALSE を返します。

注釈

呼び出し元に特定のリソースへの共有アクセス権が付与されるかどうかは、次の条件によって異なります。

  • リソースが現在所有されていない場合は、現在のスレッドに対してすぐに共有アクセスが許可されます。

  • 呼び出し元が (共有または排他アクセス用に) リソースを既に取得している場合、現在のスレッドには同じ種類のアクセスが再帰的に付与されます。 この呼び出しを行しても、特定のリソースの呼び出し元の排他的アクセスは共有アクセスに変換されないことに注意してください。

  • リソースが現在、別のスレッドによって共有されているとして所有されていて、リソースへの排他的アクセスを待機しているスレッドがない場合、共有アクセスはすぐに呼び出し元に付与されます。 排他ウェイターがある場合、呼び出し元は待機状態になります。

  • リソースが現在別のスレッドによって排他的として所有されている場合、または排他アクセスを待機している別のスレッドがあり、呼び出し元がまだリソースへの共有アクセス権を持っていない場合、現在のスレッドは待機状態 ( Wait set to TRUE) に設定されるか、 ExAcquireResourceSharedLiteが FALSE を返します。

このルーチンを呼び出す前に、通常のカーネル APC 配信を無効にする必要があります。 KeEnterCriticalRegion を呼び出して、通常のカーネル APC 配信を無効にします。 リソースが解放されるまで、配信は無効のままにしておく必要があります。その時点で 、KeLeaveCriticalRegion を呼び出して再び有効にすることができます。 詳細については、「 APC の無効化」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport)IrqlExApcLte3(wdm)WithinCriticalRegion(storport)、WithinCriticalRegion(storport)、 WithinCriticalRegion(wdm)

こちらもご覧ください

ExAcquireResourceExclusiveLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExConvertExclusiveToSharedLite

ExGetExclusiveWaiterCount

ExGetSharedWaiterCount

ExInitializeResourceLite

ExIsResourceAcquiredSharedLite

ExReinitializeResourceLite

ExReleaseResourceForThreadLite