diff fuhtark_test/include/winapi/wtsapi32.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/wtsapi32.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,204 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+#ifndef _INC_WTSAPI
+#define _INC_WTSAPI
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WTS_CURRENT_SERVER ((HANDLE)NULL)
+#define WTS_CURRENT_SERVER_HANDLE ((HANDLE)NULL)
+#define WTS_CURRENT_SERVER_NAME (NULL)
+
+#define WTS_CURRENT_SESSION ((DWORD)-1)
+
+#ifndef IDTIMEOUT
+#define IDTIMEOUT 32000
+#endif
+#ifndef IDASYNC
+#define IDASYNC 32001
+#endif
+
+#define WTS_WSD_LOGOFF 0x1
+#define WTS_WSD_SHUTDOWN 0x2
+#define WTS_WSD_REBOOT 0x4
+#define WTS_WSD_POWEROFF 0x8
+
+#define WTS_WSD_FASTREBOOT 0x10
+
+  typedef enum _WTS_CONNECTSTATE_CLASS {
+    WTSActive,WTSConnected,WTSConnectQuery,WTSShadow,WTSDisconnected,WTSIdle,WTSListen,WTSReset,WTSDown,WTSInit
+  } WTS_CONNECTSTATE_CLASS;
+
+  typedef struct _WTS_SERVER_INFOW {
+    LPWSTR pServerName;
+  } WTS_SERVER_INFOW,*PWTS_SERVER_INFOW;
+
+  typedef struct _WTS_SERVER_INFOA {
+    LPSTR pServerName;
+  } WTS_SERVER_INFOA,*PWTS_SERVER_INFOA;
+
+#ifdef UNICODE
+#define WTS_SERVER_INFO WTS_SERVER_INFOW
+#define PWTS_SERVER_INFO PWTS_SERVER_INFOW
+#else
+#define WTS_SERVER_INFO WTS_SERVER_INFOA
+#define PWTS_SERVER_INFO PWTS_SERVER_INFOA
+#endif
+
+  typedef struct _WTS_SESSION_INFOW {
+    DWORD SessionId;
+    LPWSTR pWinStationName;
+    WTS_CONNECTSTATE_CLASS State;
+  } WTS_SESSION_INFOW,*PWTS_SESSION_INFOW;
+
+  typedef struct _WTS_SESSION_INFOA {
+    DWORD SessionId;
+    LPSTR pWinStationName;
+
+    WTS_CONNECTSTATE_CLASS State;
+  } WTS_SESSION_INFOA,*PWTS_SESSION_INFOA;
+
+#ifdef UNICODE
+#define WTS_SESSION_INFO WTS_SESSION_INFOW
+#define PWTS_SESSION_INFO PWTS_SESSION_INFOW
+#else
+#define WTS_SESSION_INFO WTS_SESSION_INFOA
+#define PWTS_SESSION_INFO PWTS_SESSION_INFOA
+#endif
+
+  typedef struct _WTS_PROCESS_INFOW {
+    DWORD SessionId;
+    DWORD ProcessId;
+    LPWSTR pProcessName;
+    PSID pUserSid;
+  } WTS_PROCESS_INFOW,*PWTS_PROCESS_INFOW;
+
+  typedef struct _WTS_PROCESS_INFOA {
+    DWORD SessionId;
+    DWORD ProcessId;
+    LPSTR pProcessName;
+    PSID pUserSid;
+  } WTS_PROCESS_INFOA,*PWTS_PROCESS_INFOA;
+
+#ifdef UNICODE
+#define WTS_PROCESS_INFO WTS_PROCESS_INFOW
+#define PWTS_PROCESS_INFO PWTS_PROCESS_INFOW
+#else
+#define WTS_PROCESS_INFO WTS_PROCESS_INFOA
+#define PWTS_PROCESS_INFO PWTS_PROCESS_INFOA
+#endif
+
+#define WTS_PROTOCOL_TYPE_CONSOLE 0
+#define WTS_PROTOCOL_TYPE_ICA 1
+#define WTS_PROTOCOL_TYPE_RDP 2
+
+  typedef enum _WTS_INFO_CLASS {
+    WTSInitialProgram,WTSApplicationName,WTSWorkingDirectory,WTSOEMId,WTSSessionId,WTSUserName,WTSWinStationName,WTSDomainName,WTSConnectState,
+    WTSClientBuildNumber,WTSClientName,WTSClientDirectory,WTSClientProductId,WTSClientHardwareId,WTSClientAddress,WTSClientDisplay,
+    WTSClientProtocolType
+  } WTS_INFO_CLASS;
+
+  typedef struct _WTS_CLIENT_ADDRESS {
+    DWORD AddressFamily;
+    BYTE Address[20];
+  } WTS_CLIENT_ADDRESS,*PWTS_CLIENT_ADDRESS;
+
+  typedef struct _WTS_CLIENT_DISPLAY {
+    DWORD HorizontalResolution;
+    DWORD VerticalResolution;
+    DWORD ColorDepth;
+  } WTS_CLIENT_DISPLAY,*PWTS_CLIENT_DISPLAY;
+
+  typedef enum _WTS_CONFIG_CLASS {
+    WTSUserConfigInitialProgram,WTSUserConfigWorkingDirectory,WTSUserConfigfInheritInitialProgram,WTSUserConfigfAllowLogonTerminalServer,
+    WTSUserConfigTimeoutSettingsConnections,WTSUserConfigTimeoutSettingsDisconnections,WTSUserConfigTimeoutSettingsIdle,
+    WTSUserConfigfDeviceClientDrives,WTSUserConfigfDeviceClientPrinters,WTSUserConfigfDeviceClientDefaultPrinter,WTSUserConfigBrokenTimeoutSettings,
+    WTSUserConfigReconnectSettings,WTSUserConfigModemCallbackSettings,WTSUserConfigModemCallbackPhoneNumber,WTSUserConfigShadowingSettings,
+    WTSUserConfigTerminalServerProfilePath,WTSUserConfigTerminalServerHomeDir,WTSUserConfigTerminalServerHomeDirDrive,
+    WTSUserConfigfTerminalServerRemoteHomeDir
+  } WTS_CONFIG_CLASS;
+
+#define WTS_EVENT_NONE 0x0
+#define WTS_EVENT_CREATE 0x1
+#define WTS_EVENT_DELETE 0x2
+#define WTS_EVENT_RENAME 0x4
+#define WTS_EVENT_CONNECT 0x8
+#define WTS_EVENT_DISCONNECT 0x10
+#define WTS_EVENT_LOGON 0x20
+#define WTS_EVENT_LOGOFF 0x40
+#define WTS_EVENT_STATECHANGE 0x80
+#define WTS_EVENT_LICENSE 0x100
+#define WTS_EVENT_ALL 0x7fffffff
+#define WTS_EVENT_FLUSH 0x80000000
+
+  typedef enum _WTS_VIRTUAL_CLASS {
+    WTSVirtualClientData,WTSVirtualFileHandle
+  } WTS_VIRTUAL_CLASS;
+
+#ifdef UNICODE
+#define WTSEnumerateServers WTSEnumerateServersW
+#define WTSOpenServer WTSOpenServerW
+#define WTSEnumerateSessions WTSEnumerateSessionsW
+#define WTSEnumerateProcesses WTSEnumerateProcessesW
+#define WTSQuerySessionInformation WTSQuerySessionInformationW
+#define WTSQueryUserConfig WTSQueryUserConfigW
+#define WTSSetUserConfig WTSSetUserConfigW
+#define WTSSendMessage WTSSendMessageW
+#else
+#define WTSEnumerateServers WTSEnumerateServersA
+#define WTSOpenServer WTSOpenServerA
+#define WTSEnumerateSessions WTSEnumerateSessionsA
+#define WTSEnumerateProcesses WTSEnumerateProcessesA
+#define WTSQuerySessionInformation WTSQuerySessionInformationA
+#define WTSQueryUserConfig WTSQueryUserConfigA
+#define WTSSetUserConfig WTSSetUserConfigA
+#define WTSSendMessage WTSSendMessageA
+#endif
+
+  WINBOOL WINAPI WTSEnumerateServersW(LPWSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOW *ppServerInfo,DWORD *pCount);
+  WINBOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName,DWORD Reserved,DWORD Version,PWTS_SERVER_INFOA *ppServerInfo,DWORD *pCount);
+  HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName);
+  HANDLE WINAPI WTSOpenServerA(LPSTR pServerName);
+  VOID WINAPI WTSCloseServer(HANDLE hServer);
+  WINBOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOW *ppSessionInfo,DWORD *pCount);
+  WINBOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_SESSION_INFOA *ppSessionInfo,DWORD *pCount);
+  WINBOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOW *ppProcessInfo,DWORD *pCount);
+  WINBOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer,DWORD Reserved,DWORD Version,PWTS_PROCESS_INFOA *ppProcessInfo,DWORD *pCount);
+  WINBOOL WINAPI WTSTerminateProcess(HANDLE hServer,DWORD ProcessId,DWORD ExitCode);
+  WINBOOL WINAPI WTSQuerySessionInformationW(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPWSTR *ppBuffer,DWORD *pBytesReturned);
+  WINBOOL WINAPI WTSQuerySessionInformationA(HANDLE hServer,DWORD SessionId,WTS_INFO_CLASS WTSInfoClass,LPSTR *ppBuffer,DWORD *pBytesReturned);
+  WINBOOL WINAPI WTSQueryUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR *ppBuffer,DWORD *pBytesReturned);
+  WINBOOL WINAPI WTSQueryUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR *ppBuffer,DWORD *pBytesReturned);
+  WINBOOL WINAPI WTSSetUserConfigW(LPWSTR pServerName,LPWSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPWSTR pBuffer,DWORD DataLength);
+  WINBOOL WINAPI WTSSetUserConfigA(LPSTR pServerName,LPSTR pUserName,WTS_CONFIG_CLASS WTSConfigClass,LPSTR pBuffer,DWORD DataLength);
+  WINBOOL WINAPI WTSSendMessageW(HANDLE hServer,DWORD SessionId,LPWSTR pTitle,DWORD TitleLength,LPWSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait);
+  WINBOOL WINAPI WTSSendMessageA(HANDLE hServer,DWORD SessionId,LPSTR pTitle,DWORD TitleLength,LPSTR pMessage,DWORD MessageLength,DWORD Style,DWORD Timeout,DWORD *pResponse,WINBOOL bWait);
+  WINBOOL WINAPI WTSDisconnectSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait);
+  WINBOOL WINAPI WTSLogoffSession(HANDLE hServer,DWORD SessionId,WINBOOL bWait);
+  WINBOOL WINAPI WTSShutdownSystem(HANDLE hServer,DWORD ShutdownFlag);
+  WINBOOL WINAPI WTSWaitSystemEvent(HANDLE hServer,DWORD EventMask,DWORD *pEventFlags);
+  HANDLE WINAPI WTSVirtualChannelOpen(HANDLE hServer,DWORD SessionId,LPSTR pVirtualName);
+  WINBOOL WINAPI WTSVirtualChannelClose(HANDLE hChannelHandle);
+  WINBOOL WINAPI WTSVirtualChannelRead(HANDLE hChannelHandle,ULONG TimeOut,PCHAR Buffer,ULONG BufferSize,PULONG pBytesRead);
+  WINBOOL WINAPI WTSVirtualChannelWrite(HANDLE hChannelHandle,PCHAR Buffer,ULONG Length,PULONG pBytesWritten);
+  WINBOOL WINAPI WTSVirtualChannelPurgeInput(HANDLE hChannelHandle);
+  WINBOOL WINAPI WTSVirtualChannelPurgeOutput(HANDLE hChannelHandle);
+  WINBOOL WINAPI WTSVirtualChannelQuery(HANDLE hChannelHandle,WTS_VIRTUAL_CLASS,PVOID *ppBuffer,DWORD *pBytesReturned);
+  VOID WINAPI WTSFreeMemory(PVOID pMemory);
+
+#define NOTIFY_FOR_ALL_SESSIONS 1
+#define NOTIFY_FOR_THIS_SESSION 0
+
+  WINBOOL WINAPI WTSRegisterSessionNotification(HWND hWnd,DWORD dwFlags);
+  WINBOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd);
+  WINBOOL WINAPI WTSQueryUserToken(ULONG SessionId,PHANDLE phToken);
+
+#ifdef __cplusplus
+}
+#endif
+#endif