estrutura QUERY_SERVICE_CONFIGW (winsvc.h)

Contém informações de configuração para um serviço instalado. Ele é usado pela função QueryServiceConfig .

Sintaxe

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;

Membros

dwServiceType

O tipo do serviço. Esse membro pode ser um dos valores a seguir.

Valor Significado
SERVICE_FILE_SYSTEM_DRIVER
0x00000002
Serviço de driver do sistema de arquivos.
SERVICE_KERNEL_DRIVER
0x00000001
Serviço de driver.
SERVICE_WIN32_OWN_PROCESS
0x00000010
Serviço executado em seu próprio processo.
SERVICE_WIN32_SHARE_PROCESS
0x00000020
Serviço que compartilha um processo com outros serviços.
 

Se o valor for SERVICE_WIN32_OWN_PROCESS ou SERVICE_WIN32_SHARE_PROCESS e o serviço estiver em execução no contexto da conta LocalSystem, o tipo a seguir também poderá ser especificado.

Valor Significado
SERVICE_INTERACTIVE_PROCESS
0x00000100
O serviço pode interagir com a área de trabalho.

Para obter mais informações, consulte Serviços Interativos.

dwStartType

Quando iniciar o serviço. Esse membro pode ser um dos valores a seguir.

Valor Significado
SERVICE_AUTO_START
0x00000002
Um serviço iniciado automaticamente pelo gerenciador de controle de serviço durante a inicialização do sistema.
SERVICE_BOOT_START
0x00000000
Um driver de dispositivo iniciado pelo carregador do sistema. Esse valor só é válido para serviços do driver.
SERVICE_DEMAND_START
0x00000003
Um serviço iniciado pelo gerenciador de controle de serviço quando um processo chama a função StartService .
SERVICE_DISABLED
0x00000004
Um serviço que não pode ser iniciado. Tentativas de iniciar o serviço resultam no código de erro ERROR_SERVICE_DISABLED.
SERVICE_SYSTEM_START
0x00000001
Um driver de dispositivo iniciado pela função IoInitSystem . Esse valor só é válido para serviços do driver.

dwErrorControl

A gravidade do erro e a ação executadas se esse serviço não for iniciado. Esse membro pode ser um dos valores a seguir.

Valor Significado
SERVICE_ERROR_CRITICAL
0x00000003
O programa de inicialização registra o erro no log de eventos, se possível. Se a última boa configuração conhecida estiver sendo iniciada, a operação de inicialização falhará. Caso contrário, o sistema será reiniciado com a última boa configuração conhecida.
SERVICE_ERROR_IGNORE
0x00000000
O programa de inicialização ignora o erro e continua a operação de inicialização.
SERVICE_ERROR_NORMAL
0x00000001
O programa de inicialização registra o erro no log de eventos e continua a operação de inicialização.
SERVICE_ERROR_SEVERE
0x00000002
O programa de inicialização registra o erro no log de eventos. Se a última boa configuração conhecida estiver sendo iniciada, a operação de inicialização continuará. Caso contrário, o sistema será reiniciado com a configuração last-known-good.

lpBinaryPathName

O caminho totalmente qualificado para o arquivo binário de serviço.

O caminho também pode incluir argumentos para um serviço de início automático. Esses argumentos são passados para o ponto de entrada de serviço (normalmente a função main).

lpLoadOrderGroup

O nome do grupo de ordenação de carga ao qual esse serviço pertence. Se o membro for NULL ou uma cadeia de caracteres vazia, o serviço não pertencerá a um grupo de ordenação de carga.

O programa de inicialização usa grupos de ordenação de carga para carregar grupos de serviços em uma ordem especificada em relação aos outros grupos. A lista de grupos de ordenação de carga está contida no seguinte valor do Registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

dwTagId

Um valor de marca exclusivo para esse serviço no grupo especificado pelo parâmetro lpLoadOrderGroup . Um valor zero indica que o serviço não recebeu uma marca. Você pode usar uma marca para ordenar a inicialização do serviço em um grupo de pedidos de carga especificando um vetor de ordem de marca no registro localizado em:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList

As marcas são avaliadas apenas para serviços de tipo de SERVICE_KERNEL_DRIVER e SERVICE_FILE_SYSTEM_DRIVER que têm tipos de início SERVICE_BOOT_START ou SERVICE_SYSTEM_START .

lpDependencies

Um ponteiro para uma matriz de nomes separados por nulo de serviços ou grupos de ordenação de carga que devem começar antes desse serviço. A matriz é duplamente terminada em nulo. Se o ponteiro for NULL ou se apontar para uma cadeia de caracteres vazia, o serviço não terá dependências. Se um nome de grupo for especificado, ele deverá ser prefixado pelo caractere SC_GROUP_IDENTIFIER (definido em WinSvc.h) para diferenciá-lo de um nome de serviço, pois serviços e grupos de serviços compartilham o mesmo espaço de nome. A dependência de um serviço significa que esse serviço só poderá ser executado se o serviço do qual ele depende estiver em execução. A dependência em um grupo significa que esse serviço poderá ser executado se pelo menos um membro do grupo estiver em execução após uma tentativa de iniciar todos os membros do grupo.

lpServiceStartName

Se o tipo de serviço for SERVICE_WIN32_OWN_PROCESS ou SERVICE_WIN32_SHARE_PROCESS, esse membro será o nome da conta na qual o processo de serviço será conectado como quando for executado. Esse nome pode ser do formulárioNome de Usuário doDomínio\. Se a conta pertencer ao domínio interno, o nome poderá ser do formulário .\UserName. O nome também poderá ser "LocalSystem" se o processo estiver em execução na conta LocalSystem.

Se o tipo de serviço for SERVICE_KERNEL_DRIVER ou SERVICE_FILE_SYSTEM_DRIVER, esse membro será o nome do objeto do driver (ou seja, \FileSystem\Rdr ou \Driver\Xns) que o sistema de entrada e saída (E/S) usa para carregar o driver do dispositivo. Se esse membro for NULL, o driver deverá ser executado com um nome de objeto padrão criado pelo sistema de E/S, com base no nome do serviço.

lpDisplayName

O nome de exibição a ser usado pelos programas de controle de serviço para identificar o serviço. Essa cadeia de caracteres tem um tamanho máximo de 256 caracteres. O nome é preservado por maiúsculas e minúsculas no gerenciador de controle de serviço. As comparações de nome de exibição sempre diferenciam maiúsculas de minúsculas.

Esse parâmetro pode especificar uma cadeia de caracteres localizada usando o seguinte formato:

@[Path]DLLName,-StrID

A cadeia de caracteres com o identificador StrID é carregada de DLLName; o Caminho é opcional. Para obter mais informações, consulte RegLoadMUIString.

Windows Server 2003 e Windows XP: Não há suporte para cadeias de caracteres localizadas até o Windows Vista.

Comentários

As informações de configuração de um serviço são inicialmente especificadas quando o serviço é criado por uma chamada para a função CreateService . As informações podem ser modificadas chamando a função ChangeServiceConfig .

Exemplos

Para obter um exemplo, consulte Consultando a configuração de um serviço.

Observação

O cabeçalho winsvc.h define QUERY_SERVICE_CONFIG como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho winsvc.h (incluir Windows.h)

Confira também

ChangeServiceConfig

CreateService

QueryServiceConfig

Startservice