Fix WCT_OBJNAME_LENGTH assumed to be 128 ((0x108-0x8)/sizeof (ushort) = 128) and not 50. Additionally add enumerator init and some reformattings. git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3282 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/wct.h b/mingw-w64-headers/include/wct.h index 7a554c8..811a6ed 100644 --- a/mingw-w64-headers/include/wct.h +++ b/mingw-w64-headers/include/wct.h
@@ -11,90 +11,73 @@ extern "C" { #endif -typedef LPVOID HWCT; + typedef LPVOID HWCT; -typedef enum _WCT_OBJECT_TYPE { - WctCriticalSectionType, - WctSendMessageType, - WctMutexType, - WctAlpcType, - WctComType, - WctThreadWaitType, - WctProcessWaitType, - WctThreadType, - WctComActivationType, - WctUnknownType -} WCT_OBJECT_TYPE; + typedef enum _WCT_OBJECT_TYPE { + WctCriticalSectionType = 0, + WctSendMessageType, + WctMutexType, + WctAlpcType, + WctComType, + WctThreadWaitType, + WctProcessWaitType, + WctThreadType, + WctComActivationType, + WctUnknownType + } WCT_OBJECT_TYPE; -typedef enum _WCT_OBJECT_STATUS { - WctStatusNoAccess, - WctStatusRunning, - WctStatusBlocked, - WctStatusPidOnly, - WctStatusPidOnlyRpcss, - WctStatusOwned, - WctStatusNotOwned, - WctStatusAbandoned, - WctStatusUnknown, - WctStatusError -} WCT_OBJECT_STATUS; + typedef enum _WCT_OBJECT_STATUS { + WctStatusNoAccess = 0, + WctStatusRunning, + WctStatusBlocked, + WctStatusPidOnly, + WctStatusPidOnlyRpcss, + WctStatusOwned, + WctStatusNotOwned, + WctStatusAbandoned, + WctStatusUnknown, + WctStatusError + } WCT_OBJECT_STATUS; -/* According to http://msdn.microsoft.com/en-us/magazine/cc163395.aspx - RealObjectName has 0x8 offset and TimeOutLowPart has 0x108 - WCT_OBJNAME_LENGTH assumed to be 50 -*/ -#define WCT_OBJNAME_LENGTH 50 + /* According to http://msdn.microsoft.com/en-us/magazine/cc163395.aspx + RealObjectName has 0x8 offset and TimeOutLowPart has 0x108 + WCT_OBJNAME_LENGTH assumed to be 128 ((0x108-0x8)/sizeof (ushort) = 128) + */ + #define WCT_OBJNAME_LENGTH 128 -typedef struct _WAITCHAIN_NODE_INFO { - WCT_OBJECT_TYPE ObjectType; - WCT_OBJECT_STATUS ObjectStatus; - __MINGW_EXTENSION union { - __MINGW_EXTENSION struct { - WCHAR ObjectName[WCT_OBJNAME_LENGTH]; - LARGE_INTEGER Timeout; - WINBOOL Alertable; - } LockObject; - __MINGW_EXTENSION struct { - DWORD ProcessId; - DWORD ThreadId; - DWORD WaitTime; - DWORD ContextSwitches; - } ThreadObject; - }; -} WAITCHAIN_NODE_INFO, *PWAITCHAIN_NODE_INFO; + typedef struct _WAITCHAIN_NODE_INFO { + WCT_OBJECT_TYPE ObjectType; + WCT_OBJECT_STATUS ObjectStatus; + __MINGW_EXTENSION union { + __MINGW_EXTENSION struct { + WCHAR ObjectName[WCT_OBJNAME_LENGTH]; + LARGE_INTEGER Timeout; + WINBOOL Alertable; + } LockObject; + __MINGW_EXTENSION struct { + DWORD ProcessId; + DWORD ThreadId; + DWORD WaitTime; + DWORD ContextSwitches; + } ThreadObject; + }; + } WAITCHAIN_NODE_INFO, *PWAITCHAIN_NODE_INFO; -typedef VOID (CALLBACK *PWAITCHAINCALLBACK)( - HWCT WctHandle, - DWORD_PTR Context, - DWORD CallbackStatus, - LPDWORD NodeCount, - PWAITCHAIN_NODE_INFO NodeInfoArray, - LPBOOL IsCycle -); + typedef VOID (CALLBACK *PWAITCHAINCALLBACK)(HWCT WctHandle,DWORD_PTR Context,DWORD CallbackStatus,LPDWORD NodeCount,PWAITCHAIN_NODE_INFO NodeInfoArray,LPBOOL IsCycle); -HWCT WINAPI OpenThreadWaitChainSession(DWORD Flags,PWAITCHAINCALLBACK callback); -VOID WINAPI CloseThreadWaitChainSession(HWCT WctHandle); -WINBOOL WINAPI GetThreadWaitChain( - HWCT WctHandle, - DWORD_PTR Context, - DWORD Flags, - DWORD ThreadId, - LPDWORD NodeCount, - PWAITCHAIN_NODE_INFO NodeInfoArray, - LPBOOL IsCycle -); + HWCT WINAPI OpenThreadWaitChainSession(DWORD Flags,PWAITCHAINCALLBACK callback); + VOID WINAPI CloseThreadWaitChainSession(HWCT WctHandle); +WINBOOL WINAPI GetThreadWaitChain(HWCT WctHandle,DWORD_PTR Context,DWORD Flags,DWORD ThreadId,LPDWORD NodeCount,PWAITCHAIN_NODE_INFO NodeInfoArray,LPBOOL IsCycle); /* Unknown Callbacks */ typedef LPVOID (WINAPI *PCOGETCALLSTATE)(); typedef LPVOID (WINAPI *PCOGETACTIVATIONSTATE)(); -VOID WINAPI RegisterWaitChainCOMCallback( - PCOGETCALLSTATE CallStateCallback, - PCOGETACTIVATIONSTATE ActivationStateCallback -); +VOID WINAPI RegisterWaitChainCOMCallback(PCOGETCALLSTATE CallStateCallback,PCOGETACTIVATIONSTATE ActivationStateCallback); #ifdef __cplusplus } #endif + #endif /* (_WIN32_WINNT >= 0x0600) */ #endif /*_INC_WCT*/