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
Gibt den Thread an, der die Ressource ursprünglich abgerufen hat. Wenn dies nicht der derzeit ausgeführte Thread ist, muss der Aufrufer den Besitz der Ressource übertragen haben, indem er zuerst die ExSetResourceOwnerPointerEx-Routine für den Thread aufruft, der die Ressource ursprünglich abgerufen hat.
Rückgabewert
Keine
Bemerkungen
Wenn dies nicht der derzeit ausgeführte Thread ist, muss der Aufrufer den Besitz der Ressource übertragen haben, indem er zuerst die ExSetResourceOwnerPointerEx-Routine für den Thread aufruft, der die Ressource ursprünglich abgerufen hat. Dadurch wird sichergestellt, dass Thread A nicht beendet oder gelöscht wird, bevor Thread B die Ressource freigeben kann.
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 er die KeEnterCriticalRegion-Routine aufruft . Die Übermittlung 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 |
---|---|
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 | ExclusiveResourceAccess(wdm), HwStorPortProhibitedDIs(storport), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Weitere Informationen
ExAcquireResourceExclusiveLite
ExAcquireSharedStarveExclusive