estrutura QUERY_SERVICE_CONFIGA (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_CONFIGA {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPSTR lpBinaryPathName;
LPSTR lpLoadOrderGroup;
DWORD dwTagId;
LPSTR lpDependencies;
LPSTR lpServiceStartName;
LPSTR lpDisplayName;
} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
Membros
dwServiceType
O tipo do serviço. Esse membro pode ser um dos valores a seguir.
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 |
---|---|
|
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 |
---|---|
|
Um serviço iniciado automaticamente pelo gerenciador de controle de serviço durante a inicialização do sistema. |
|
Um driver de dispositivo iniciado pelo carregador do sistema. Esse valor só é válido para serviços do driver. |
|
Um serviço iniciado pelo gerenciador de controle de serviço quando um processo chama a função StartService . |
|
Um serviço que não pode ser iniciado. Tentativas de iniciar o serviço resultam no código de erro ERROR_SERVICE_DISABLED. |
|
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 executada, se esse serviço não for iniciado. Esse membro pode ser um dos valores a seguir.
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 dentro de 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 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 ser iniciados 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 formatoUserName do Domínio\. Se a conta pertencer ao domínio interno, o nome poderá ser do formato .\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) |