include: Add more Wait Chain Traversal definitions.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
b8a4b9f93b
commit
e3421d50fd
|
@ -19,9 +19,85 @@
|
|||
#ifndef __WINE_WCT_H
|
||||
#define __WINE_WCT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define WCT_MAX_NODE_COUNT 16
|
||||
#define WCT_OBJNAME_LENGTH 128
|
||||
|
||||
#define WCT_ASYNC_OPEN_FLAG 0x1
|
||||
#define WCTP_OPEN_ALL_FLAGS (WCT_ASYNC_OPEN_FLAG)
|
||||
|
||||
#define WCT_OUT_OF_PROC_FLAG 0x1
|
||||
#define WCT_OUT_OF_PROC_COM_FLAG 0x2
|
||||
#define WCT_OUT_OF_PROC_CS_FLAG 0x4
|
||||
#define WCT_NETWORK_IO_FLAG 0x8
|
||||
#define WCTP_GETINFO_ALL_FLAGS (WCT_OUT_OF_PROC_FLAG|WCT_OUT_OF_PROC_COM_FLAG|WCT_OUT_OF_PROC_CS_FLAG)
|
||||
|
||||
typedef enum _WCT_OBJECT_TYPE
|
||||
{
|
||||
WctCriticalSectionType = 1,
|
||||
WctSendMessageType,
|
||||
WctMutexType,
|
||||
WctAlpcType,
|
||||
WctComType,
|
||||
WctThreadWaitType,
|
||||
WctProcessWaitType,
|
||||
WctThreadType,
|
||||
WctComActivationType,
|
||||
WctUnknownType,
|
||||
WctSocketIoType,
|
||||
WctSmbIoType,
|
||||
WctMaxType
|
||||
} WCT_OBJECT_TYPE;
|
||||
|
||||
typedef enum _WCT_OBJECT_STATUS
|
||||
{
|
||||
WctStatusNoAccess = 1,
|
||||
WctStatusRunning,
|
||||
WctStatusBlocked,
|
||||
WctStatusPidOnly,
|
||||
WctStatusPidOnlyRpcss,
|
||||
WctStatusOwned,
|
||||
WctStatusNotOwned,
|
||||
WctStatusAbandoned,
|
||||
WctStatusUnknown,
|
||||
WctStatusError,
|
||||
WctStatusMax
|
||||
} WCT_OBJECT_STATUS;
|
||||
|
||||
typedef struct _WAITCHAIN_NODE_INFO
|
||||
{
|
||||
WCT_OBJECT_TYPE ObjectType;
|
||||
WCT_OBJECT_STATUS ObjectStatus;
|
||||
__C89_NAMELESS union {
|
||||
struct {
|
||||
WCHAR ObjectName[WCT_OBJNAME_LENGTH];
|
||||
LARGE_INTEGER Timeout;
|
||||
BOOL Alertable;
|
||||
} LockObject;
|
||||
struct {
|
||||
DWORD ProcessId;
|
||||
DWORD ThreadId;
|
||||
DWORD WaitTime;
|
||||
DWORD ContextSwitches;
|
||||
} ThreadObject;
|
||||
};
|
||||
} WAITCHAIN_NODE_INFO, *PWAITCHAIN_NODE_INFO;
|
||||
|
||||
typedef LPVOID HWCT;
|
||||
typedef VOID (CALLBACK *PWAITCHAINCALLBACK) (HWCT,DWORD_PTR,DWORD,LPDWORD,PWAITCHAIN_NODE_INFO,LPBOOL);
|
||||
typedef HRESULT (WINAPI *PCOGETCALLSTATE)(int,PULONG);
|
||||
typedef HRESULT (WINAPI *PCOGETACTIVATIONSTATE)(GUID,DWORD,DWORD*);
|
||||
|
||||
VOID WINAPI CloseThreadWaitChainSession(HWCT);
|
||||
BOOL WINAPI GetThreadWaitChain(HWCT,DWORD_PTR,DWORD,DWORD,LPDWORD,PWAITCHAIN_NODE_INFO,LPBOOL);
|
||||
HWCT WINAPI OpenThreadWaitChainSession(DWORD,PWAITCHAINCALLBACK);
|
||||
void WINAPI RegisterWaitChainCOMCallback(PCOGETCALLSTATE,PCOGETACTIVATIONSTATE);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __WINE_WCT_H */
|
||||
|
|
Loading…
Reference in New Issue