summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librpc/gen_ndr/ndr_svcctl.c72
-rw-r--r--librpc/gen_ndr/ndr_svcctl.h2
-rw-r--r--librpc/gen_ndr/svcctl.h37
3 files changed, 104 insertions, 7 deletions
diff --git a/librpc/gen_ndr/ndr_svcctl.c b/librpc/gen_ndr/ndr_svcctl.c
index 54c49adef4..4cc85d49b9 100644
--- a/librpc/gen_ndr/ndr_svcctl.c
+++ b/librpc/gen_ndr/ndr_svcctl.c
@@ -71,13 +71,73 @@ _PUBLIC_ void ndr_print_SERVICE_LOCK_STATUS(struct ndr_print *ndr, const char *n
ndr->depth--;
}
+static enum ndr_err_code ndr_push_svcctl_ServiceStatus(struct ndr_push *ndr, int ndr_flags, enum svcctl_ServiceStatus r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_ServiceStatus(struct ndr_pull *ndr, int ndr_flags, enum svcctl_ServiceStatus *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_ServiceStatus(struct ndr_print *ndr, const char *name, enum svcctl_ServiceStatus r)
+{
+ const char *val = NULL;
+
+ switch (r) {
+ case SVCCTL_STATE_UNKNOWN: val = "SVCCTL_STATE_UNKNOWN"; break;
+ case SVCCTL_STOPPED: val = "SVCCTL_STOPPED"; break;
+ case SVCCTL_START_PENDING: val = "SVCCTL_START_PENDING"; break;
+ case SVCCTL_STOP_PENDING: val = "SVCCTL_STOP_PENDING"; break;
+ case SVCCTL_RUNNING: val = "SVCCTL_RUNNING"; break;
+ case SVCCTL_CONTINUE_PENDING: val = "SVCCTL_CONTINUE_PENDING"; break;
+ case SVCCTL_PAUSE_PENDING: val = "SVCCTL_PAUSE_PENDING"; break;
+ case SVCCTL_PAUSED: val = "SVCCTL_PAUSED"; break;
+ }
+ ndr_print_enum(ndr, name, "ENUM", val, r);
+}
+
+static enum ndr_err_code ndr_push_svcctl_ControlsAccepted(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_svcctl_ControlsAccepted(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_svcctl_ControlsAccepted(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+ ndr_print_uint32(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_NONE", SVCCTL_ACCEPT_NONE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_STOP", SVCCTL_ACCEPT_STOP, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_PAUSE_CONTINUE", SVCCTL_ACCEPT_PAUSE_CONTINUE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_SHUTDOWN", SVCCTL_ACCEPT_SHUTDOWN, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_PARAMCHANGE", SVCCTL_ACCEPT_PARAMCHANGE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_NETBINDCHANGE", SVCCTL_ACCEPT_NETBINDCHANGE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_HARDWAREPROFILECHANGE", SVCCTL_ACCEPT_HARDWAREPROFILECHANGE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SVCCTL_ACCEPT_POWEREVENT", SVCCTL_ACCEPT_POWEREVENT, r);
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_SERVICE_STATUS(struct ndr_push *ndr, int ndr_flags, const struct SERVICE_STATUS *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->state));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->controls_accepted));
+ NDR_CHECK(ndr_push_svcctl_ServiceStatus(ndr, NDR_SCALARS, r->state));
+ NDR_CHECK(ndr_push_svcctl_ControlsAccepted(ndr, NDR_SCALARS, r->controls_accepted));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->win32_exit_code));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->service_exit_code));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->check_point));
@@ -93,8 +153,8 @@ static enum ndr_err_code ndr_pull_SERVICE_STATUS(struct ndr_pull *ndr, int ndr_f
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->state));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->controls_accepted));
+ NDR_CHECK(ndr_pull_svcctl_ServiceStatus(ndr, NDR_SCALARS, &r->state));
+ NDR_CHECK(ndr_pull_svcctl_ControlsAccepted(ndr, NDR_SCALARS, &r->controls_accepted));
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->win32_exit_code));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->service_exit_code));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->check_point));
@@ -110,8 +170,8 @@ _PUBLIC_ void ndr_print_SERVICE_STATUS(struct ndr_print *ndr, const char *name,
ndr_print_struct(ndr, name, "SERVICE_STATUS");
ndr->depth++;
ndr_print_uint32(ndr, "type", r->type);
- ndr_print_uint32(ndr, "state", r->state);
- ndr_print_uint32(ndr, "controls_accepted", r->controls_accepted);
+ ndr_print_svcctl_ServiceStatus(ndr, "state", r->state);
+ ndr_print_svcctl_ControlsAccepted(ndr, "controls_accepted", r->controls_accepted);
ndr_print_WERROR(ndr, "win32_exit_code", r->win32_exit_code);
ndr_print_uint32(ndr, "service_exit_code", r->service_exit_code);
ndr_print_uint32(ndr, "check_point", r->check_point);
diff --git a/librpc/gen_ndr/ndr_svcctl.h b/librpc/gen_ndr/ndr_svcctl.h
index 4b47161973..2d6f3ed7e8 100644
--- a/librpc/gen_ndr/ndr_svcctl.h
+++ b/librpc/gen_ndr/ndr_svcctl.h
@@ -101,6 +101,8 @@ extern const struct ndr_interface_table ndr_table_svcctl;
#define NDR_SVCCTL_CALL_COUNT (44)
void ndr_print_SERVICE_LOCK_STATUS(struct ndr_print *ndr, const char *name, const struct SERVICE_LOCK_STATUS *r);
+void ndr_print_svcctl_ServiceStatus(struct ndr_print *ndr, const char *name, enum svcctl_ServiceStatus r);
+void ndr_print_svcctl_ControlsAccepted(struct ndr_print *ndr, const char *name, uint32_t r);
void ndr_print_SERVICE_STATUS(struct ndr_print *ndr, const char *name, const struct SERVICE_STATUS *r);
enum ndr_err_code ndr_push_SERVICE_STATUS_PROCESS(struct ndr_push *ndr, int ndr_flags, const struct SERVICE_STATUS_PROCESS *r);
enum ndr_err_code ndr_pull_SERVICE_STATUS_PROCESS(struct ndr_pull *ndr, int ndr_flags, struct SERVICE_STATUS_PROCESS *r);
diff --git a/librpc/gen_ndr/svcctl.h b/librpc/gen_ndr/svcctl.h
index c36f578101..c3914e5671 100644
--- a/librpc/gen_ndr/svcctl.h
+++ b/librpc/gen_ndr/svcctl.h
@@ -33,9 +33,44 @@ struct SERVICE_LOCK_STATUS {
uint32_t lock_duration;
};
+enum svcctl_ServiceStatus
+#ifndef USE_UINT_ENUMS
+ {
+ SVCCTL_STATE_UNKNOWN=0x00000000,
+ SVCCTL_STOPPED=0x00000001,
+ SVCCTL_START_PENDING=0x00000002,
+ SVCCTL_STOP_PENDING=0x00000003,
+ SVCCTL_RUNNING=0x00000004,
+ SVCCTL_CONTINUE_PENDING=0x00000005,
+ SVCCTL_PAUSE_PENDING=0x00000006,
+ SVCCTL_PAUSED=0x00000007
+}
+#else
+ { __donnot_use_enum_svcctl_ServiceStatus=0x7FFFFFFF}
+#define SVCCTL_STATE_UNKNOWN ( 0x00000000 )
+#define SVCCTL_STOPPED ( 0x00000001 )
+#define SVCCTL_START_PENDING ( 0x00000002 )
+#define SVCCTL_STOP_PENDING ( 0x00000003 )
+#define SVCCTL_RUNNING ( 0x00000004 )
+#define SVCCTL_CONTINUE_PENDING ( 0x00000005 )
+#define SVCCTL_PAUSE_PENDING ( 0x00000006 )
+#define SVCCTL_PAUSED ( 0x00000007 )
+#endif
+;
+
+/* bitmap svcctl_ControlsAccepted */
+#define SVCCTL_ACCEPT_NONE ( 0x00000000 )
+#define SVCCTL_ACCEPT_STOP ( 0x00000001 )
+#define SVCCTL_ACCEPT_PAUSE_CONTINUE ( 0x00000002 )
+#define SVCCTL_ACCEPT_SHUTDOWN ( 0x00000004 )
+#define SVCCTL_ACCEPT_PARAMCHANGE ( 0x00000008 )
+#define SVCCTL_ACCEPT_NETBINDCHANGE ( 0x00000010 )
+#define SVCCTL_ACCEPT_HARDWAREPROFILECHANGE ( 0x00000020 )
+#define SVCCTL_ACCEPT_POWEREVENT ( 0x00000040 )
+
struct SERVICE_STATUS {
uint32_t type;
- uint32_t state;
+ enum svcctl_ServiceStatus state;
uint32_t controls_accepted;
WERROR win32_exit_code;
uint32_t service_exit_code;