GetThreadWaitChain-Funktion (wct.h)
Ruft die Wartekette für den angegebenen Thread ab.
Syntax
BOOL GetThreadWaitChain(
[in] HWCT WctHandle,
[in, optional] DWORD_PTR Context,
[in] DWORD Flags,
[in] DWORD ThreadId,
[in, out] LPDWORD NodeCount,
[out] PWAITCHAIN_NODE_INFO NodeInfoArray,
[out] LPBOOL IsCycle
);
Parameter
[in] WctHandle
Ein Handle für die WCT-Sitzung, die von der OpenThreadWaitChainSession-Funktion erstellt wurde.
[in, optional] Context
Ein Zeiger auf eine anwendungsdefinierte Kontextstruktur, die an die Rückruffunktion für eine asynchrone Sitzung übergeben werden soll.
[in] Flags
Die Optionen zum Abrufen der Wartekette. Dieser Parameter kann einer der folgenden Werte sein.
[in] ThreadId
Der Bezeichner des Threads.
[in, out] NodeCount
Bei der Eingabe eine Zahl von 1 bis WCT_MAX_NODE_COUNT, die die Anzahl der Knoten in der Wartekette angibt. Bei der Rückgabe die Anzahl der abgerufenen Knoten. Wenn das Array nicht alle Knoten der Wartekette enthalten kann, schlägt die Funktion fehl, gibt GetLastError ERROR_MORE_DATA zurück, und dieser Parameter empfängt die Anzahl der Arrayelemente, die erforderlich sind, um alle Knoten zu enthalten.
Überprüfen Sie bei asynchronen Sitzungen den Wert, der an die Rückruffunktion übergeben wird. Geben Sie die Variable erst frei, wenn die Rückruffunktion zurückgegeben wurde.
[out] NodeInfoArray
Ein Array von WAITCHAIN_NODE_INFO Strukturen, das die Wartekette empfängt.
Überprüfen Sie bei asynchronen Sitzungen den Wert, der an die Rückruffunktion übergeben wird. Geben Sie das Array erst frei, wenn die Rückruffunktion zurückgegeben wurde.
[out] IsCycle
Wenn die Funktion einen Deadlock erkennt, wird diese Variable auf TRUE festgelegt. Andernfalls ist er auf FALSE festgelegt.
Überprüfen Sie bei asynchronen Sitzungen den Wert, der an die Rückruffunktion übergeben wird. Geben Sie die Variable erst frei, wenn die Rückruffunktion zurückgegeben wurde.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.
Rückgabecode | Beschreibung |
---|---|
|
Der Aufrufer verfügte nicht über ausreichende Berechtigungen zum Öffnen eines Zielthreads. |
|
Einer der Eingabeparameter ist ungültig. |
|
Die WCT-Sitzung wurde im asynchronen Modus geöffnet. Die Ergebnisse werden über die Rückruffunktion WaitChainCallback zurückgegeben. |
|
Der NodeInfoArray-Puffer ist nicht groß genug, um alle Knoten in der Wartekette zu enthalten. Der NodeCount-Parameter enthält die Anzahl der Knoten in der Kette. Die zurückgegebene Wartekette ist weiterhin gültig. |
|
Das Betriebssystem stellt diesen Dienst nicht bereit. |
|
Der angegebene Thread konnte nicht gefunden werden. |
|
Die Anzahl der Knoten überschreitet WCT_MAX_NODE_COUNT. Die zurückgegebene Wartekette ist weiterhin gültig. |
Hinweise
Wenn die Sitzung asynchron ist, gibt die Funktion FALSE und GetLastError ERROR_IO_PENDING zurück. Informationen zum Abrufen der Ergebnisse finden Sie in der Rückruffunktion WaitChainCallback .
Wenn der angegebene Thread nicht blockiert oder für ein nicht unterstütztes Synchronisierungselement blockiert wird, gibt die Funktion ein einzelnes Element in NodeInfoArray zurück.
Der Aufrufer muss über das SE_DEBUG_NAME-Recht verfügen. Wenn der Aufrufer über unzureichende Berechtigungen verfügt, schlägt die Funktion fehl, wenn auf den ersten Thread nicht zugegriffen werden kann. Andernfalls ist für den letzten Knoten im Array sein ObjectStatus-Member auf WctStatusNoAcces festgelegt.
Wenn eine Teilmenge von Knoten im Array einen Zyklus bildet, legt die Funktion den IsCycle-Parameter auf TRUE fest.
Warteketteinformationen sind dynamisch; Sie war richtig, wenn die Funktion aufgerufen wurde, ist aber möglicherweise veraltet, wenn sie vom Aufrufer überprüft wird.
Beispiele
Ein Beispiel finden Sie unter Verwenden von WCT.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wct.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |