<div class="content" name="QUERY_SERVICE_CONFIGA" uuid="daee07f5-9075-4534-a674-7db7fc689b36"><dl>
<dd>
<dl>
<dd>
<p>The QUERY_SERVICE_CONFIGA structure defines
configuration information about an installed service. String values are stored
in ANSI.</p>
</dd></dl></dd>
<dd>
<div><pre> typedef struct _QUERY_SERVICE_CONFIGA {
   DWORD dwServiceType;
   DWORD dwStartType;
   DWORD dwErrorControl;
   [string,range(0, 8 * 1024)] LPSTR lpBinaryPathName;
   [string,range(0, 8 * 1024)] LPSTR lpLoadOrderGroup;
   DWORD dwTagId;
   [string,range(0, 8 * 1024)] LPSTR lpDependencies;
   [string,range(0, 8 * 1024)] LPSTR lpServiceStartName;
   [string,range(0, 8 * 1024)] LPSTR lpDisplayName;
 } QUERY_SERVICE_CONFIGA,
  *LPQUERY_SERVICE_CONFIGA;
</pre></div>
</dd></dl><p><b>dwServiceType:</b>  The type of service.
This member MUST be one of the following values.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>SERVICE_KERNEL_DRIVER 0x00000001</td>
  <td>A driver service. These are services that manage devices on the system.</td>
 </tr><tr>
  <td>SERVICE_FILE_SYSTEM_DRIVER 0x00000002</td>
  <td>A file system driver service. These are services that manage file systems on the system.</td>
 </tr><tr>
  <td>SERVICE_WIN32_OWN_PROCESS 0x00000010</td>
  <td>A service that runs in its own process.</td>
 </tr><tr>
  <td>SERVICE_WIN32_SHARE_PROCESS 0x00000020</td>
  <td>A service that shares a process with other services.</td>
 </tr></tbody></table>
</dd></dl><p><b>dwStartType:</b>  Defines when to start
the service. This member MUST be one of the following values.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>SERVICE_BOOT_START 0x00000000</td>
  <td>Starts the driver service when the system boots up. This value is valid only for driver services.</td>
 </tr><tr>
  <td>SERVICE_SYSTEM_START 0x00000001</td>
  <td>Starts the driver service when the system boots up. This value is valid only for driver services. The services marked SERVICE_SYSTEM_START are started after all SERVICE_BOOT_START services have been started.</td>
 </tr><tr>
  <td>SERVICE_AUTO_START 0x00000002</td>
  <td>A service started automatically by the SCM during system startup.</td>
 </tr><tr>
  <td>SERVICE_DEMAND_START 0x00000003</td>
  <td>Starts the service when a client requests the SCM to start the service.</td>
 </tr><tr>
  <td>SERVICE_DISABLED 0x00000004</td>
  <td>A service that cannot be started. Attempts to start the service result in the error code ERROR_SERVICE_DISABLED.</td>
 </tr></tbody></table>
</dd></dl><p><b>dwErrorControl:</b>  The severity of the
error if this service fails to start during startup, and the action that the
SCM takes if failure occurs.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>SERVICE_ERROR_IGNORE 0x00000000</td>
  <td>The SCM ignores the error and continues the startup operation.</td>
 </tr><tr>
  <td>SERVICE_ERROR_NORMAL 0x00000001</td>
  <td>The SCM logs the error in the event log and continues the startup operation.</td>
 </tr><tr>
  <td>SERVICE_ERROR_SEVERE 0x00000002</td>
  <td>The SCM logs the error in the event log. If the last-known good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known good configuration.</td>
 </tr><tr>
  <td>SERVICE_ERROR_CRITICAL 0x00000003</td>
  <td>The SCM SHOULD log the error in the event log if possible. If the last-known good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known good configuration.</td>
 </tr></tbody></table>
</dd></dl><p><b>lpBinaryPathName:</b>  A pointer to a
null-terminated string that contains the fully qualified path to the service
binary file. The path MAY include arguments. If the path contains a space, it
MUST be quoted so that it is correctly interpreted. For example, &#34;d:\\my
share\\myservice.exe&#34; is specified as &#34;\&#34;d:\\my
share\\myservice.exe\&#34;&#34;.</p><p><b>lpLoadOrderGroup:</b>  A pointer to a
null-terminated string that names the <span><a href="4f66d32e-2f4f-4482-998e-e5ccbb445223#gt_8ee1e5c0-3886-409f-8707-197e6232042d" data-linktype="relative-path">service group</a></span> for
load-ordering of which this service is a member. If the pointer is NULL or if
it points to an empty string, the service does not belong to a group.</p><p><b>dwTagId:</b>  A unique tag value for
this service within the service group specified by the <i>lpLoadOrderGroup</i>
parameter. A value of 0 indicates that the service has not been assigned a tag.</p><p><b>lpDependencies:</b>  A pointer to an
array of null-separated names of services or names of service groups that MUST
start before this service. The array is doubly null-terminated. Service group
names are prefixed with a &#34;+&#34; character (to distinguish them from
service names). If the pointer is <b>NULL</b> or if it points to an empty
string, the service has no dependencies. Cyclic dependency between services is
not allowed. The character set is <span><a href="4f66d32e-2f4f-4482-998e-e5ccbb445223#gt_100cd8a6-5cb1-4895-9de6-e4a3c224a583" data-linktype="relative-path">ANSI</a></span>. Dependency on
a service means that this service can only run if the service it depends on is
running. Dependency on a group means that this service can run if at least one
member of the group is running after an attempt to start all members of the
group.</p><p><b>lpServiceStartName:</b>  A pointer to a
null-terminated string that contains the service name.</p><p><b>lpDisplayName:</b>  A pointer to a
null-terminated string that contains the service display name.</p></div>