services: Add stub implementation for SERVICE_CONFIG_FAILURE_ACTIONS in ChangeServiceConfig2W.

This commit is contained in:
Alexandre Julliard 2009-01-27 11:27:45 +01:00
parent 5e7f7db923
commit 746948551a
2 changed files with 34 additions and 2 deletions

View File

@ -94,13 +94,40 @@ typedef struct _SERVICE_DESCRIPTIONW {
LPWSTR lpDescription; LPWSTR lpDescription;
} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW; } SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW;
typedef enum _SC_ACTION_TYPE {
SC_ACTION_NONE = 0,
SC_ACTION_RESTART = 1,
SC_ACTION_REBOOT = 2,
SC_ACTION_RUN_COMMAND = 3
} SC_ACTION_TYPE;
typedef struct _SC_ACTION {
SC_ACTION_TYPE Type;
DWORD Delay;
} SC_ACTION,*LPSC_ACTION;
typedef struct _SERVICE_FAILURE_ACTIONSW {
DWORD dwResetPeriod;
[unique] LPWSTR lpRebootMsg;
[unique] LPWSTR lpCommand;
DWORD cActions;
[size_is(cActions)] SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW;
#define SERVICE_CONFIG_DESCRIPTION 1 #define SERVICE_CONFIG_DESCRIPTION 1
#define SERVICE_CONFIG_FAILURE_ACTIONS 2
#define SERVICE_CONFIG_DELAYED_AUTO_START_INFO 3
#define SERVICE_CONFIG_FAILURE_ACTIONS_FLAG 4
#define SERVICE_CONFIG_SERVICE_SID_INFO 5
#define SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 6
#define SERVICE_CONFIG_PRESHUTDOWN_INFO 7
cpp_quote("#endif") cpp_quote("#endif")
typedef [switch_type(DWORD)] union typedef [switch_type(DWORD)] union
{ {
[case (SERVICE_CONFIG_DESCRIPTION)] SERVICE_DESCRIPTIONW descr; [case (SERVICE_CONFIG_DESCRIPTION)] SERVICE_DESCRIPTIONW descr;
[case (SERVICE_CONFIG_FAILURE_ACTIONS)] SERVICE_FAILURE_ACTIONSW actions;
} SERVICE_CONFIG2W; } SERVICE_CONFIG2W;
/* Compatible with Windows function 0x00 */ /* Compatible with Windows function 0x00 */

View File

@ -631,7 +631,12 @@ DWORD svcctl_ChangeServiceConfig2W( SC_RPC_HANDLE hService, DWORD level, SERVICE
service_unlock( service->service_entry ); service_unlock( service->service_entry );
} }
break; break;
case SERVICE_CONFIG_FAILURE_ACTIONS:
WINE_FIXME( "SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period %u msg %s cmd %s\n",
config->actions.dwResetPeriod,
wine_dbgstr_w(config->actions.lpRebootMsg),
wine_dbgstr_w(config->actions.lpCommand) );
break;
default: default:
WINE_FIXME("level %u not implemented\n", level); WINE_FIXME("level %u not implemented\n", level);
err = ERROR_INVALID_LEVEL; err = ERROR_INVALID_LEVEL;