Freigeben über


ExReleaseResourceForThreadLite-Funktion (wdm.h)

Die ExReleaseResourceForThreadLite Routine gibt die Eingaberessource des angegebenen Threads frei.

Syntax

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

Parameter

[in, out] Resource

Ein Zeiger auf die ressource, die freigegeben werden soll.

[in] ResourceThreadId

Identifiziert den Thread, der die Ressource ursprünglich erworben hat. Wenn dies nicht der derzeit ausgeführte Thread ist, muss der Aufrufer den Besitz der Ressource durch Aufrufen der ExSetResourceOwnerPointerEx-Routine zuerst im Thread übertragen haben, der die Ressource ursprünglich erworben hat.

Rückgabewert

Nichts

Bemerkungen

Wenn dies nicht der derzeit ausgeführte Thread ist, muss der Aufrufer den Besitz der Ressource durch Aufrufen der ExSetResourceOwnerPointerEx-Routine zuerst im Thread übertragen haben, der die Ressource ursprünglich erworben hat. Dadurch wird sichergestellt, dass Thread A nicht beendet oder gelöscht wird, bevor Thread B die Möglichkeit hat, die Ressource freizugeben.

Sofern der Aufrufer nicht in einem Systemthread ausgeführt wird, muss der Aufrufer die Übermittlung normaler Kernel-APCs explizit deaktivieren, bevor diese Routine aufgerufen wird. Diese Anforderung verhindert, dass Threads angehalten werden, während sie eine Ressource bearbeiten oder halten. Der Aufrufer kann die normale Kernel-APC-Übermittlung deaktivieren, indem die KeEnterCriticalRegion Routine aufgerufen wird. Die Zustellung muss deaktiviert bleiben, bis die Ressource freigegeben wird. An diesem Punkt kann sie durch Aufrufen der KeLeaveCriticalRegion Routine erneut aktiviert werden. Weitere Informationen finden Sie unter Deaktivieren von APCs.

Diese Anforderung gilt nicht für Aufrufe von ExReleaseResourceForThreadLite- aus einem Systemthread. Ein Aufrufer, der in einem Systemthread ausgeführt wird, muss APCs nicht explizit deaktivieren, bevor diese Routine aufgerufen wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln ExclusiveResourceAccess(wdm), HwStorPortProhibitedDIs(storport), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm)

Siehe auch

ExAcquireResourceExclusiveLite-

ExAcquireResourceSharedLite-

ExAcquireSharedStarveExclusive

ExAcquireSharedWaitForExclusive

ExGetCurrentResourceThread-

ExInitializeResourceLite-

ExReinitializeResourceLite