BOOL svcctl_io_service_fa( const char *desc, SERVICE_FAILURE_ACTIONS *fa, RPC_BUFFER *buffer, int depth ) { prs_struct *ps = &buffer->prs; int i; prs_debug(ps, depth, desc, "svcctl_io_service_description"); depth++; if ( !prs_uint32("reset_period", ps, depth, &fa->reset_period) ) return False; if ( !prs_pointer( desc, ps, depth, (void**)&fa->rebootmsg, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2 ) ) return False; if ( !prs_pointer( desc, ps, depth, (void**)&fa->command, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2 ) ) return False; if ( !prs_uint32("num_actions", ps, depth, &fa->num_actions) ) return False; if ( UNMARSHALLING(ps) && fa->num_actions ) { if ( !(fa->actions = TALLOC_ARRAY( get_talloc_ctx(), SC_ACTION, fa->num_actions )) ) { DEBUG(0,("svcctl_io_service_fa: talloc() failure!\n")); return False; } } for ( i=0; i<fa->num_actions; i++ ) { if ( !svcctl_io_action( "actions", &fa->actions[i], ps, depth ) ) return False; } return True; }
BOOL svcctl_io_q_open_scmanager(const char *desc, SVCCTL_Q_OPEN_SCMANAGER *q_u, prs_struct *ps, int depth) { if (q_u == NULL) return False; prs_debug(ps, depth, desc, "svcctl_io_q_open_scmanager"); depth++; if(!prs_align(ps)) return False; if(!prs_pointer("servername", ps, depth, (void**)&q_u->servername, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2)) return False; if(!prs_align(ps)) return False; if(!prs_pointer("database", ps, depth, (void**)&q_u->database, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2)) return False; if(!prs_align(ps)) return False; if(!prs_uint32("access", ps, depth, &q_u->access)) return False; return True; }
BOOL svcctl_io_r_enum_services_status(const char *desc, SVCCTL_R_ENUM_SERVICES_STATUS *r_u, prs_struct *ps, int depth) { if (r_u == NULL) return False; prs_debug(ps, depth, desc, "svcctl_io_r_enum_services_status"); depth++; if(!prs_align(ps)) return False; if (!prs_rpcbuffer("", ps, depth, &r_u->buffer)) return False; if(!prs_align(ps)) return False; if(!prs_uint32("needed", ps, depth, &r_u->needed)) return False; if(!prs_uint32("returned", ps, depth, &r_u->returned)) return False; if(!prs_pointer("resume", ps, depth, (void**)&r_u->resume, sizeof(uint32), (PRS_POINTER_CAST)prs_uint32)) return False; if(!prs_werror("status", ps, depth, &r_u->status)) return False; return True; }
BOOL svcctl_io_q_enum_services_status(const char *desc, SVCCTL_Q_ENUM_SERVICES_STATUS *q_u, prs_struct *ps, int depth) { if (q_u == NULL) return False; prs_debug(ps, depth, desc, "svcctl_io_q_enum_services_status"); depth++; if(!prs_align(ps)) return False; if(!smb_io_pol_hnd("scm_pol", &q_u->handle, ps, depth)) return False; if(!prs_uint32("type", ps, depth, &q_u->type)) return False; if(!prs_uint32("state", ps, depth, &q_u->state)) return False; if(!prs_uint32("buffer_size", ps, depth, &q_u->buffer_size)) return False; if(!prs_pointer("resume", ps, depth, (void**)&q_u->resume, sizeof(uint32), (PRS_POINTER_CAST)prs_uint32)) return False; return True; }
BOOL eventlog_io_q_open_eventlog(const char *desc, EVENTLOG_Q_OPEN_EVENTLOG *q_u, prs_struct *ps, int depth) { if(q_u == NULL) return False; prs_debug(ps, depth, desc, "eventlog_io_q_open_eventlog"); depth++; if(!prs_align(ps)) return False; if ( !prs_pointer("", ps, depth, (void*)&q_u->unknown0, sizeof(EVENTLOG_OPEN_UNKNOWN0), (PRS_POINTER_CAST)prs_ev_open_unknown0)) return False; if ( !prs_unistr4("logname", ps, depth, &q_u->logname) ) return False; if ( !prs_align(ps) ) return False; if ( !prs_unistr4("servername", ps, depth, &q_u->servername) ) return False; if ( !prs_align(ps) ) return False; if ( !prs_uint32("unknown1", ps, depth, &q_u->unknown1) ) return False; if ( !prs_uint32("unknown2", ps, depth, &q_u->unknown2) ) return False; return True; }
BOOL prs_unistr4(const char *desc, prs_struct *ps, int depth, UNISTR4 *uni4) { void *ptr; prs_debug(ps, depth, desc, "prs_unistr4"); depth++; if ( !prs_uint16("length", ps, depth, &uni4->length )) return False; if ( !prs_uint16("size", ps, depth, &uni4->size )) return False; ptr = uni4->string; if ( !prs_pointer( desc, ps, depth, &ptr, sizeof(UNISTR2), (PRS_POINTER_CAST)prs_io_unistr2 ) ) return False; uni4->string = (UNISTR2 *)ptr; return True; }
BOOL svcctl_io_q_start_service(const char *desc, SVCCTL_Q_START_SERVICE *q_u, prs_struct *ps, int depth) { if (q_u == NULL) return False; prs_debug(ps, depth, desc, "svcctl_io_q_start_service"); depth++; if(!prs_align(ps)) return False; if(!smb_io_pol_hnd("service_pol", &q_u->handle, ps, depth)) return False; if(!prs_uint32("parmcount", ps, depth, &q_u->parmcount)) return False; if ( !prs_pointer("rights", ps, depth, (void**)&q_u->parameters, sizeof(UNISTR4_ARRAY), (PRS_POINTER_CAST)prs_unistr4_array) ) return False; return True; }