QUERY_SERVICE_CONFIGW estructura (winsvc.h)

Contiene información de configuración para un servicio instalado. La función QueryServiceConfig la usa.

Sintaxis

typedef struct _QUERY_SERVICE_CONFIGW {
  DWORD  dwServiceType;
  DWORD  dwStartType;
  DWORD  dwErrorControl;
  LPWSTR lpBinaryPathName;
  LPWSTR lpLoadOrderGroup;
  DWORD  dwTagId;
  LPWSTR lpDependencies;
  LPWSTR lpServiceStartName;
  LPWSTR lpDisplayName;
} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;

Miembros

dwServiceType

Tipo de servicio. Este miembro puede ser uno de los valores siguientes.

Valor Significado
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Servicio de controlador del sistema de archivos.
SERVICE_KERNEL_DRIVER
0x00000001
Servicio de controladores.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Servicio que se ejecuta en su propio proceso.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Servicio que comparte un proceso con otros servicios.
 

Si el valor es SERVICE_WIN32_OWN_PROCESS o SERVICE_WIN32_SHARE_PROCESS, y el servicio se ejecuta en el contexto de la cuenta LocalSystem, también se puede especificar el tipo siguiente.

Valor Significado
SERVICE_INTERACTIVE_PROCESS
0x00000100
El servicio puede interactuar con el escritorio.

Para obtener más información, consulte Interactive Services.

dwStartType

Cuándo iniciar el servicio. Este miembro puede ser uno de los valores siguientes.

Valor Significado
SERVICE_AUTO_START
0x00000002
Un servicio iniciado automáticamente por el administrador de control de servicios durante el inicio del sistema.
SERVICE_BOOT_START
0x00000000
Un controlador de dispositivo iniciado por el cargador del sistema. Este valor solamente es válido para servicios de controladores.
SERVICE_DEMAND_START
0x00000003
Un servicio iniciado por el administrador de control de servicios cuando un proceso llama a la función StartService .
SERVICE_DISABLED
0x00000004
Un servicio que no se puede iniciar. Los intentos de iniciar el servicio dan como resultado el código de error ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
Un controlador de dispositivo iniciado por la función IoInitSystem . Este valor solamente es válido para servicios de controladores.

dwErrorControl

Gravedad del error y acción realizada, si este servicio no se inicia. Este miembro puede ser uno de los valores siguientes.

Valor Significado
SERVICE_ERROR_CRITICAL
0x00000003
El programa de inicio registra el error en el registro de eventos, si es posible. Si se está iniciando la última configuración correcta conocida, se produce un error en la operación de inicio. De lo contrario, el sistema se reinicia con la última configuración correcta conocida.
SERVICE_ERROR_IGNORE
0x00000000
El programa de inicio omite el error y continúa la operación de inicio.
SERVICE_ERROR_NORMAL
0x00000001
El programa de inicio registra el error en el registro de eventos y continúa la operación de inicio.
SERVICE_ERROR_SEVERE
0x00000002
El programa de inicio registra el error en el registro de eventos. Si se está iniciando la última configuración correcta conocida, la operación de inicio continúa. De lo contrario, el sistema se reinicia con la última configuración válida conocida.

lpBinaryPathName

Ruta de acceso completa al archivo binario del servicio.

La ruta de acceso también puede incluir argumentos para un servicio de inicio automático. Estos argumentos se pasan al punto de entrada de servicio (normalmente la función principal ).

lpLoadOrderGroup

Nombre del grupo de pedidos de carga al que pertenece este servicio. Si el miembro es NULL o una cadena vacía, el servicio no pertenece a un grupo de pedidos de carga.

El programa de inicio usa grupos de ordenación de carga para cargar grupos de servicios en un orden especificado con respecto a los demás grupos. La lista de grupos de ordenación de carga se encuentra en el siguiente valor del Registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

Valor de etiqueta único para este servicio en el grupo especificado por el parámetro lpLoadOrderGroup . Un valor de cero indica que no se ha asignado una etiqueta al servicio. Puede usar una etiqueta para ordenar el inicio del servicio dentro de un grupo de pedidos de carga especificando un vector de orden de etiqueta en el registro ubicado en:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

Las etiquetas solo se evalúan para los servicios de tipo SERVICE_KERNEL_DRIVER y SERVICE_FILE_SYSTEM_DRIVER que tienen tipos de inicio SERVICE_BOOT_START o SERVICE_SYSTEM_START .

lpDependencies

Puntero a una matriz de nombres separados por null de servicios o grupos de ordenación de carga que deben iniciarse antes de este servicio. La matriz termina doblemente en null. Si el puntero es NULL o si apunta a una cadena vacía, el servicio no tiene dependencias. Si se especifica un nombre de grupo, debe tener como prefijo el carácter SC_GROUP_IDENTIFIER (definido en WinSvc.h) para diferenciarlo de un nombre de servicio, ya que los servicios y los grupos de servicios comparten el mismo espacio de nombres. La dependencia de un servicio significa que este servicio solo se puede ejecutar si el servicio del que depende está en ejecución. La dependencia de un grupo significa que este servicio se puede ejecutar si al menos un miembro del grupo se está ejecutando después de un intento de iniciar todos los miembros del grupo.

lpServiceStartName

Si el tipo de servicio es SERVICE_WIN32_OWN_PROCESS o SERVICE_WIN32_SHARE_PROCESS, este miembro es el nombre de la cuenta en la que se iniciará el proceso de servicio como cuando se ejecute. Este nombre puede tener el formato NombreDeUsuario de dominio\. Si la cuenta pertenece al dominio integrado, el nombre puede tener el formato .\UserName. El nombre también puede ser "LocalSystem" si el proceso se ejecuta en la cuenta localSystem.

Si el tipo de servicio es SERVICE_KERNEL_DRIVER o SERVICE_FILE_SYSTEM_DRIVER, este miembro es el nombre del objeto de controlador (es decir, \FileSystem\Rdr o \Driver\Xns) que el sistema de entrada y salida (E/S) usa para cargar el controlador de dispositivo. Si este miembro es NULL, el controlador se ejecutará con un nombre de objeto predeterminado creado por el sistema de E/S, en función del nombre del servicio.

lpDisplayName

Nombre para mostrar que usarán los programas de control de servicio para identificar el servicio. Esta cadena tiene una longitud máxima de 256 caracteres. El nombre se conserva entre mayúsculas y minúsculas en el administrador de control de servicios. Las comparaciones de nombres para mostrar siempre no distinguen mayúsculas de minúsculas.

Este parámetro puede especificar una cadena localizada con el formato siguiente:

@[Path]DLLName,-StrID

La cadena con identificador StrID se carga desde DLLName; la ruta de acceso es opcional. Para obtener más información, vea RegLoadMUIString.

Windows Server 2003 y Windows XP: Las cadenas localizadas no se admiten hasta Windows Vista.

Comentarios

La información de configuración de un servicio se especifica inicialmente cuando el servicio se crea mediante una llamada a la función CreateService . La información se puede modificar llamando a la función ChangeServiceConfig .

Ejemplos

Para obtener un ejemplo, consulte Consulta de la configuración de un servicio.

Nota

El encabezado winsvc.h define QUERY_SERVICE_CONFIG como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winsvc.h (incluye Windows.h)

Consulte también

ChangeServiceConfig

CreateService

QueryServiceConfig

StartService