ExSetResourceOwnerPointer-Funktion (wdm.h)

Die ExSetResourceOwnerPointer-Routine legt den Besitzerthreadzeiger für eine Executive-Ressource fest.

Syntax

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

Parameter

[in, out] Resource

Ein Zeiger auf eine Executive-Ressource, die dem aktuellen Thread gehört.

[in] OwnerPointer

Ein Zeiger auf einen Besitzerthreadzeiger vom Typ ERESOURCE_THREAD (weitere Anforderungen finden Sie im abschnitt "Hinweise").

Rückgabewert

Keine

Bemerkungen

ExSetResourceOwnerPointer, das in Verbindung mit ExReleaseResourceForThreadLite verwendet wird, bietet eine Möglichkeit für einen Thread (der als Ressourcen-Manager-Thread fungiert) zum Abrufen und Freigeben von Ressourcen für die Verwendung durch einen anderen Thread (der als Ressourcenbenutzerthread fungiert).

Nachdem Sie ExSetResourceOwnerPointer für eine bestimmte Ressource aufgerufen haben, ist exReleaseResourceForThreadLite die einzige andere Routine, die für diese Ressource aufgerufen werden kann.

Der Ressourcen-Manager-Thread erwirbt den Besitz der Ressource und übergibt den Besitz an den Benutzerthread, indem ExSetResourceOwnerPointer aufgerufen wird. Der Aufrufer muss den Arbeitsspeicher für den ERESOURCE_THREAD Wert zuordnen, auf den OwnerPointer im Systemspeicher verweist, und dieser Arbeitsspeicher muss zugeordnet bleiben, bis ExReleaseResourceForThreadLite zurückgibt. Der Aufrufer muss auch die zwei Bits mit niedriger Reihenfolge des ERESOURCE_THREAD Werts festlegen, auf den OwnerPointer verweist. Diese Codierung wird intern von den Ressourcendiensten verwendet, um zwischen Besitzer- und Threadadressen zu unterscheiden.

Wenn der Benutzerthread mit der Ressource abgeschlossen ist, gibt der Ressourcen-Manager-Thread den Besitz des Benutzerthreads für die Ressource frei, indem ExReleaseResourceForThreadLite aufgerufen wird. Der ResourceThreadId-Eingabeparameter ist auf den Wert des OwnerPointer-Parameters festgelegt, der im vorherigen Aufruf von ExSetResourceOwnerPointer verwendet wurde, der dem Workerthread den Besitz der Ressource zugewiesen hat.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport)

Weitere Informationen

ExReleaseResourceForThreadLite