次の方法で共有


ExSetResourceOwnerPointer 関数 (wdm.h)

ExSetResourceOwnerPointer ルーチンは、エグゼクティブ リソースの所有者スレッド ポインターを設定します。

構文

void ExSetResourceOwnerPointer(
  [in, out] PERESOURCE Resource,
  [in]      PVOID      OwnerPointer
);

パラメーター

[in, out] Resource

現在のスレッドが所有するエグゼクティブ リソースへのポインター。

[in] OwnerPointer

ERESOURCE_THREAD型の所有者スレッド ポインターへのポインター (追加の要件については、次の「備考」セクションを参照してください)。

戻り値

なし

解説

ExReleaseResourceForThreadLite と組み合わせて使用される ExSetResourceOwnerPointer は、あるスレッド (リソース マネージャー スレッドとして機能) が、別のスレッド (リソース ユーザー スレッドとして機能) によって使用されるリソースを取得および解放するための手段を提供します。

特定のリソースに対して ExSetResourceOwnerPointer を呼び出した後、そのリソースに対して呼び出すことができる他のルーチンは ExReleaseResourceForThreadLite だけです。

リソース マネージャー スレッドは、リソースの所有権を取得し、 ExSetResourceOwnerPointer を呼び出してユーザー スレッドに所有権を渡します。 呼び出し元は、システム メモリ内の OwnerPointer が指すERESOURCE_THREAD値のメモリを割り当てる必要があります。このメモリは、 ExReleaseResourceForThreadLite が返されるまで割り当てられたままになります。 呼び出し元は 、OwnerPointer が指すERESOURCE_THREAD値の 2 つの下位ビットを 1 に設定する必要もあります。このエンコードは、所有者アドレスとスレッド アドレスを区別するためにリソース サービスによって内部的に使用されます。

リソースを使用してユーザー スレッドが完了すると、リソース マネージャー スレッドは ExReleaseResourceForThreadLite を呼び出して、リソースのユーザー スレッドの所有権を解放します。 ResourceThreadId 入力パラメーターは、リソースのワーカー スレッド所有権を付与した ExSetResourceOwnerPointer の前回の呼び出しで使用された OwnerPointer パラメーターの値に設定されます。

要件

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

こちらもご覧ください

ExReleaseResourceForThreadLite