Ok for apply?
Regards,
Kai
From b933174e80f83a880439481938f43f020d94005b Mon Sep 17 00:00:00 2001
From: Kai Tietz <ktiet...@googlemail.com>
Date: Mon, 25 Aug 2014 14:57:52 +0200
Subject: Add winapifamily-check, correct enumerator values, add missing
types and API.
---
mingw-w64-headers/include/restartmanager.h | 260 +++++++++++-----------------
1 files changed, 103 insertions(+), 157 deletions(-)
diff --git a/mingw-w64-headers/include/restartmanager.h
b/mingw-w64-headers/include/restartmanager.h
index 23f400b..092a991 100644
--- a/mingw-w64-headers/include/restartmanager.h
+++ b/mingw-w64-headers/include/restartmanager.h
@@ -1,173 +1,119 @@
/**
- * This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
*/
+
#ifndef _INC_RESTARTMANAGER
#define _INC_RESTARTMANAGER
-#if (_WIN32_WINNT >= 0x0600)
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus
extern "C" {
#endif
-typedef enum _RM_APP_STATUS {
- RmStatusUnknown = 0x0,
- RmStatusRunning = 0x1,
- RmStatusStopped = 0x2,
- RmStatusStoppedOther = 0x4,
- RmStatusRestarted = 0x8,
- RmStatusErrorOnStop = 0x10,
- RmStatusErrorOnRestart = 0x20,
- RmStatusShutdownMasked = 0x40,
- RmStatusRestartMasked = 0x80
-} RM_APP_STATUS;
-
-typedef enum _RM_APP_TYPE {
- RmUnknownApp = 0,
- RmMainWindow = 1,
- RmOtherWindow = 2,
- RmService = 3,
- RmExplorer = 4,
- RmConsole = 5,
- RmCritical = 1000
-} RM_APP_TYPE;
-
-typedef enum _RM_FILTER_ACTION {
- RmInvalidFilterAction = 0,
- RmNoRestart = 1,
- RmNoShutdown = 2
-} RM_FILTER_ACTION;
-
-typedef enum _RM_FILTER_TRIGGER {
- RmFilterTriggerInvalid = 0,
- RmFilterTriggerFile = 1,
- RmFilterTriggerProcess = 2,
- RmFilterTriggerService = 3
-} RM_FILTER_TRIGGER;
-
-typedef enum _RM_REBOOT_REASON {
- RmRebootReasonNone = 0x0,
- RmRebootReasonPermissionDenied = 0x1,
- RmRebootReasonSessionMismatch = 0x2,
- RmRebootReasonCriticalProcess = 0x4,
- RmRebootReasonCriticalService = 0x8,
- RmRebootReasonDetectedSelf = 0x10
-} RM_REBOOT_REASON;
-
-typedef enum _RM_SHUTDOWN_TYPE {
- RmForceShutdown = 0x1,
- RmShutdownOnlyRegistered = 0x10
-} RM_SHUTDOWN_TYPE;
-
-typedef struct _RM_UNIQUE_PROCESS {
- DWORD dwProcessId;
- FILETIME ProcessStartTime;
-} RM_UNIQUE_PROCESS, *PRM_UNIQUE_PROCESS;
-
-typedef struct _RM_FILTER_INFO {
- RM_FILTER_ACTION FilterAction;
- RM_FILTER_TRIGGER FilterTrigger;
- DWORD cbNextOffset;
- LPWSTR strFilename;
- RM_UNIQUE_PROCESS Process;
- LPWSTR strServiceShortName;
-} RM_FILTER_INFO, *PRM_FILTER_INFO;
-
-typedef struct _RM_PROCESS_INFO {
- RM_UNIQUE_PROCESS Process;
- WCHAR strAppName[CCH_RM_MAX_APP_NAME+1];
- WCHAR strServiceShortName[CCH_RM_MAX_SVC_NAME+1];
- RM_APP_TYPE ApplicationType;
- ULONG AppStatus;
- DWORD TSSessionId;
- WINBOOL bRestartable;
-} RM_PROCESS_INFO;
-
-typedef void ( *RM_WRITE_STATUS_CALLBACK )(
- UINT nPercentComplete
-);
-
-DWORD WINAPI RmAddFilter(
- DWORD dwSessionHandle,
- LPCWSTR strFilename,
- RM_UNIQUE_PROCESS *Application,
- LPCWSTR strShortServiceName,
- RM_FILTER_ACTION ActionType
-);
-
-DWORD WINAPI RmCancelCurrentTask(
- DWORD dwSessionHandle
-);
-
-DWORD WINAPI RmEndSession(
- DWORD dwSessionHandle
-);
-
-DWORD WINAPI RmGetFilterList(
- DWORD dwSessionHandle,
- PBYTE pbFilterBuf,
- DWORD cbFilterBuf,
- LPDWORD cbFilterBufNeeded
-);
-
-DWORD WINAPI RmGetList(
- DWORD dwSessionHandle,
- UINT *pnProcInfoNeeded,
- UINT *pnProcInfo,
- RM_PROCESS_INFO rgAffectedApps[ ],
- LPDWORD lpdwRebootReasons
-);
-
-DWORD WINAPI RmJoinSession(
- DWORD *pSessionHandle,
- const WCHAR strSessionKey[ ]
-);
-
-DWORD WINAPI RmRegisterResources(
- DWORD dwSessionHandle,
- UINT nFiles,
- LPCWSTR rgsFilenames[ ],
- UINT nApplications,
- RM_UNIQUE_PROCESS rgApplications[ ],
- UINT nServices,
- LPCWSTR rgsServiceNames[ ]
-);
-
-DWORD WINAPI RmRemoveFilter(
- DWORD dwSessionHandle,
- LPCWSTR strFilename,
- RM_UNIQUE_PROCESS *Application,
- LPCWSTR strShortServiceName
-);
-
-DWORD WINAPI RmRestart(
- DWORD dwSessionHandle,
- DWORD dwRestartFlags,
- RM_WRITE_STATUS_CALLBACK fnStatus
-);
-
-#define RmForceShutdown 0x1
-#define RmShutdownOnlyRegistered 0x10
-
-DWORD WINAPI RmShutdown(
- DWORD dwSessionHandle,
- ULONG lActionFlags,
- RM_WRITE_STATUS_CALLBACK fnStatus
-);
-
-DWORD WINAPI RmStartSession(
- DWORD *pSessionHandle,
- DWORD dwSessionFlags,
- WCHAR strSessionKey[]
-);
+#define RM_SESSION_KEY_LEN sizeof (GUID)
+#define CCH_RM_SESSION_KEY RM_SESSION_KEY_LEN * 2
+#define CCH_RM_MAX_APP_NAME 255
+#define CCH_RM_MAX_SVC_NAME 63
+#define RM_INVALID_TS_SESSION -1
+#define RM_INVALID_PROCESS -1
+
+ typedef enum _RM_APP_STATUS {
+ RmStatusUnknown = 0x0,
+ RmStatusRunning = 0x1,
+ RmStatusStopped = 0x2,
+ RmStatusStoppedOther = 0x4,
+ RmStatusRestarted = 0x8,
+ RmStatusErrorOnStop = 0x10,
+ RmStatusErrorOnRestart = 0x20,
+ RmStatusShutdownMasked = 0x40,
+ RmStatusRestartMasked = 0x80
+ } RM_APP_STATUS;
+
+ typedef enum _RM_SHUTDOWN_TYPE {
+ RmForceShutdown = 0x1,
+ RmShutdownOnlyRegistered = 0x10
+ } RM_SHUTDOWN_TYPE;
+
+ typedef enum _RM_APP_TYPE {
+ RmUnknownApp = 0,
+ RmMainWindow,
+ RmOtherWindow,
+ RmService,
+ RmExplorer,
+ RmConsole,
+ RmCritical = 1000
+ } RM_APP_TYPE;
+
+ typedef enum _RM_REBOOT_REASON {
+ RmRebootReasonNone = 0x0,
+ RmRebootReasonPermissionDenied = 0x1,
+ RmRebootReasonSessionMismatch = 0x2,
+ RmRebootReasonCriticalProcess = 0x4,
+ RmRebootReasonCriticalService = 0x8,
+ RmRebootReasonDetectedSelf = 0x10
+ } RM_REBOOT_REASON;
+
+ typedef enum _RM_FILTER_TRIGGER {
+ RmFilterTriggerInvalid = 0,
+ RmFilterTriggerFile,
+ RmFilterTriggerProcess,
+ RmFilterTriggerService
+ } RM_FILTER_TRIGGER;
+
+ typedef enum _RM_FILTER_ACTION {
+ RmInvalidFilterAction = 0,
+ RmNoRestart,
+ RmNoShutdown
+ } RM_FILTER_ACTION;
+
+ typedef struct _RM_UNIQUE_PROCESS {
+ DWORD dwProcessId;
+ FILETIME ProcessStartTime;
+ } RM_UNIQUE_PROCESS, *PRM_UNIQUE_PROCESS;
+
+ typedef struct _RM_PROCESS_INFO {
+ RM_UNIQUE_PROCESS Process;
+ WCHAR strAppName[CCH_RM_MAX_APP_NAME + 1];
+ WCHAR strServiceShortName[CCH_RM_MAX_SVC_NAME + 1];
+ RM_APP_TYPE ApplicationType;
+ ULONG AppStatus;
+ DWORD TSSessionId;
+ BOOL bRestartable;
+ } RM_PROCESS_INFO, *PRM_PROCESS_INFO;
+
+ typedef struct _RM_FILTER_INFO {
+ RM_FILTER_ACTION FilterAction;
+ RM_FILTER_TRIGGER FilterTrigger;
+ DWORD cbNextOffset;
+ __C89_NAMELESS union {
+ LPWSTR strFilename;
+ RM_UNIQUE_PROCESS Process;
+ LPWSTR strServiceShortName;
+ };
+ } RM_FILTER_INFO, *PRM_FILTER_INFO;
+
+ typedef void (*RM_WRITE_STATUS_CALLBACK)(UINT nPercentComplete);
+
+ DWORD WINAPI RmStartSession(DWORD *pSessionHandle, DWORD dwSessionFlags,
WCHAR strSessionKey[]);
+ DWORD WINAPI RmJoinSession(DWORD *pSessionHandle, const WCHAR
strSessionKey[]);
+ DWORD WINAPI RmEndSession(DWORD dwSessionHandle);
+ DWORD WINAPI RmRegisterResources(DWORD dwSessionHandle, UINT nFiles, LPCWSTR
rgsFileNames[], UINT nApplications, RM_UNIQUE_PROCESS rgApplications[], UINT
nServices, LPCWSTR rgsServiceNames[]);
+ DWORD WINAPI RmGetList(DWORD dwSessionHandle, UINT *pnProcInfoNeeded, UINT
*pnProcInfo, RM_PROCESS_INFO rgAffectedApps[], LPDWORD lpdwRebootReasons);
+ DWORD WINAPI RmShutdown(DWORD dwSessionHandle, ULONG lActionFlags,
RM_WRITE_STATUS_CALLBACK fnStatus);
+ DWORD WINAPI RmRestart(DWORD dwSessionHandle, DWORD dwRestartFlags,
RM_WRITE_STATUS_CALLBACK fnStatus);
+ DWORD WINAPI RmCancelCurrentTask(DWORD dwSessionHandle);
+ DWORD WINAPI RmAddFilter(DWORD dwSessionHandle, LPCWSTR strModuleName,
RM_UNIQUE_PROCESS *pProcess, LPCWSTR strServiceShortName, RM_FILTER_ACTION
FilterAction);
+ DWORD WINAPI RmRemoveFilter(DWORD dwSessionHandle, LPCWSTR strModuleName,
RM_UNIQUE_PROCESS *pProcess, LPCWSTR strServiceShortName);
+ DWORD WINAPI RmGetFilterList(DWORD dwSessionHandle, PBYTE pbFilterBuf, DWORD
cbFilterBuf, LPDWORD cbFilterBufNeeded);
#ifdef __cplusplus
}
-#endif
+#endif
-#endif /* (_WIN32_WINNT >= 0x0600) */
-
-#endif /*_INC_RESTARTMANAGER*/
+#endif
+#endif
--
1.7.9
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public