GetThreadWaitChain 함수(wct.h)
지정된 스레드에 대한 대기 체인을 검색합니다.
구문
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
);
매개 변수
[in] WctHandle
OpenThreadWaitChainSession 함수에서 만든 WCT 세션에 대한 핸들입니다.
[in, optional] Context
비동기 세션의 콜백 함수에 전달할 애플리케이션 정의 컨텍스트 구조에 대한 포인터입니다.
[in] Flags
대기 체인 검색 옵션입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
[in] ThreadId
스레드의 식별자입니다.
[in, out] NodeCount
입력에서 대기 체인의 노드 수를 지정하는 1에서 WCT_MAX_NODE_COUNT 수입니다. 반환될 때 검색된 노드 수입니다. 배열에 대기 체인의 모든 노드가 포함될 수 없는 경우 함수가 실패하고 GetLastError 가 ERROR_MORE_DATA 반환하며, 이 매개 변수는 모든 노드를 포함하는 데 필요한 배열 요소 수를 받습니다.
비동기 세션의 경우 콜백 함수에 전달되는 값을 검사. 콜백 함수가 반환될 때까지 변수를 해제하지 마세요.
[out] NodeInfoArray
대기 체인을 수신하는 WAITCHAIN_NODE_INFO 구조체의 배열입니다.
비동기 세션의 경우 콜백 함수에 전달되는 값을 검사. 콜백 함수가 반환될 때까지 배열을 해제하지 마세요.
[out] IsCycle
함수가 교착 상태를 감지하면 이 변수는 TRUE로 설정됩니다 . 그렇지 않으면 FALSE로 설정됩니다.
비동기 세션의 경우 콜백 함수에 전달되는 값을 검사. 콜백 함수가 반환될 때까지 변수를 해제하지 마세요.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다.
반환 코드 | 설명 |
---|---|
|
호출자에게 대상 스레드를 열 수 있는 충분한 권한이 없습니다. |
|
입력 매개 변수 중 하나가 잘못되었습니다. |
|
WCT 세션이 비동기 모드로 열렸습니다. 결과는 WaitChainCallback 콜백 함수를 통해 반환됩니다. |
|
NodeInfoArray 버퍼는 대기 체인의 모든 노드를 포함할 만큼 크지 않습니다. NodeCount 매개 변수에는 체인의 노드 수가 포함됩니다. 반환된 대기 체인은 여전히 유효합니다. |
|
운영 체제에서 이 서비스를 제공하지 않습니다. |
|
지정된 스레드를 찾지 못했습니다. |
|
노드 수가 WCT_MAX_NODE_COUNT 초과합니다. 반환된 대기 체인은 여전히 유효합니다. |
설명
세션이 비동기인 경우 함수는 FALSE 를 반환하고 GetLastError 는 ERROR_IO_PENDING 반환합니다. 결과를 얻으려면 WaitChainCallback 콜백 함수를 참조하세요.
지정된 스레드가 차단되지 않거나 지원되지 않는 동기화 요소에서 차단된 경우 함수는 NodeInfoArray에서 단일 항목을 반환합니다.
호출자에게는 SE_DEBUG_NAME 권한이 있어야 합니다. 호출자에게 권한이 부족한 경우 첫 번째 스레드에 액세스할 수 없으면 함수가 실패합니다. 그렇지 않으면 배열의 마지막 노드에 ObjectStatus 멤버가 WctStatusNoAcces로 설정됩니다.
배열의 노드 하위 집합이 주기를 구성하는 경우 함수 는 IsCycle 매개 변수를 TRUE로 설정합니다.
대기 체인 정보는 동적입니다. 함수가 호출되었을 때 올바르지만 호출자가 검토할 때까지 만료되었을 수 있습니다.
예제
예제는 WCT 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wct.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |