次の方法で共有


ExReleaseResourceForThreadLite 関数 (wdm.h)

ExReleaseResourceForThreadLite ルーチンは、指定されたスレッドの入力リソースを解放します。

構文

void ExReleaseResourceForThreadLite(
  [in, out] PERESOURCE       Resource,
  [in]      ERESOURCE_THREAD ResourceThreadId
);

パラメーター

[in, out] Resource

解放するリソースへのポインター。

[in] ResourceThreadId

最初にリソースを取得したスレッドを識別します。 これが現在実行中のスレッドでない場合、呼び出し元は、最初にリソースを取得したスレッド ExSetResourceOwnerPointerEx ルーチンを呼び出すことによって、リソースの所有権を転送している必要があります。

戻り値

何一つ

備考

これが現在実行中のスレッドでない場合、呼び出し元は、最初にリソースを取得したスレッド ExSetResourceOwnerPointerEx ルーチンを呼び出すことによって、リソースの所有権を転送している必要があります。 これは、スレッド B がリソースを解放する前にスレッド A が終了または削除されないようにするためです。

呼び出し元がシステム スレッドで実行されていない限り、呼び出し元は、このルーチンを呼び出す前に、通常のカーネル API の配信を明示的に無効にする必要があります。 この要件により、リソースを操作または保持している間にスレッドが中断されるのを防ぐことができます。 呼び出し元は、KeEnterCriticalRegion ルーチンを呼び出すことによって、通常のカーネル APC 配信を無効にすることができます。 配信は、リソースが解放されるまで無効にしておく必要があります。その時点で、KeLeaveCriticalRegion ルーチンを呼び出すことによって再び有効にすることができます。 詳細については、「APCsの無効化」を参照してください。

この要件は、システム スレッド ExReleaseResourceForThreadLite に対して行われた呼び出しには適用されません。 システム スレッドで実行されている呼び出し元は、このルーチンを呼び出す前に明示的に APC を無効にする必要はありません。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する ExclusiveResourceAccess(wdm), HwStorPortProhibitedDDDIs(storport), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

関連項目

ExAcquireResourceExclusiveLite

ExAcquireResourceSharedLite

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExGetCurrentResourceThread

ExInitializeResourceLite

ExReinitializeResourceLite