QueryServiceStatusEx 함수(winsvc.h)

지정된 정보 수준에 따라 지정된 서비스의 현재 상태 검색합니다.

구문

BOOL QueryServiceStatusEx(
  [in]            SC_HANDLE      hService,
  [in]            SC_STATUS_TYPE InfoLevel,
  [out, optional] LPBYTE         lpBuffer,
  [in]            DWORD          cbBufSize,
  [out]           LPDWORD        pcbBytesNeeded
);

매개 변수

[in] hService

서비스에 대한 핸들입니다. 이 핸들은 CreateService 또는 OpenService 함수에서 반환되며 SERVICE_QUERY_STATUS 액세스 권한이 있어야 합니다. 자세한 내용은 서비스 보안 및 액세스 권한을 참조하세요.

[in] InfoLevel

반환할 서비스 특성입니다. SC_STATUS_PROCESS_INFO 사용하여 서비스 상태 정보를 검색합니다. lpBuffer 매개 변수는 SERVICE_STATUS_PROCESS 구조체에 대한 포인터입니다.

현재 다른 정보 수준은 정의되어 있지 않습니다.

[out, optional] lpBuffer

상태 정보를 수신하는 버퍼에 대한 포인터입니다. 이 데이터의 형식은 InfoLevel 매개 변수의 값에 따라 달라집니다.

이 배열의 최대 크기는 8K바이트입니다. 필요한 크기를 확인하려면 이 매개 변수에 NULL을, cbBufSize 매개 변수에 대해 0을 지정합니다. 함수가 실패하고 GetLastError 가 ERROR_INSUFFICIENT_BUFFER 반환합니다. pcbBytesNeeded 매개 변수는 필요한 크기를 받습니다.

[in] cbBufSize

lpBuffer 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.

[out] pcbBytesNeeded

함수가 ERROR_INSUFFICIENT_BUFFER 함께 실패하는 경우 모든 상태 정보를 저장하는 데 필요한 바이트 수를 수신하는 변수에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 다음 오류를 반환할 수 있습니다.

반환 코드 설명
ERROR_INVALID_HANDLE
핸들이 잘못되었습니다.
ERROR_ACCESS_DENIED
핸들에 SERVICE_QUERY_STATUS 액세스 권한이 없습니다.
ERROR_INSUFFICIENT_BUFFER
버퍼가 너무 작아서 SERVICE_STATUS_PROCESS 구조체가 없습니다. 구조체에 기록된 것은 없습니다.
ERROR_INVALID_PARAMETER
SERVICE_STATUS_PROCESScbSize 멤버가 잘못되었습니다.
ERROR_INVALID_LEVEL
InfoLevel 매개 변수에는 지원되지 않는 값이 포함되어 있습니다.
ERROR_SHUTDOWN_IN_PROGRESS
시스템이 종료되고 있습니다. 이 함수를 호출할 수 없습니다.

설명

QueryServiceStatusEx 함수는 서비스 제어 관리자에 보고된 최신 서비스 상태 정보를 반환합니다. 서비스에서 상태 변경한 경우 서비스 제어 관리자가 아직 업데이트되지 않았을 수 있습니다.

서비스 상태가 SERVICE_RUNNING, SERVICE_PAUSE_PENDING, SERVICE_PAUSED 또는 SERVICE_CONTINUE_PENDING 중 하나이면 SERVICE_STATUS_PROCESS 구조에서 반환되는 프로세스 식별자가 유효합니다. 그러나 서비스가 SERVICE_START_PENDING 또는 SERVICE_STOP_PENDING 상태인 경우 프로세스 식별자가 유효하지 않을 수 있으며 서비스가 SERVICE_STOPPED 상태이면 유효하지 않습니다.

예제

예를 들어 서비스 시작 또는 서비스중지를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winsvc.h(Windows.h 포함)
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

SERVICE_STATUS_PROCESS

서비스 함수

서비스 시작