英語で読む

次の方法で共有


ExAcquireResourceSharedLite 関数 (wdm.h)

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

構文

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

パラメーター

[in, out] Resource

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

[in] Wait

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

戻り値

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

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

備考

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

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

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

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ 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