EnumDependentServicesW 함수(winsvc.h)
지정된 서비스에 종속된 각 서비스의 이름과 상태 검색합니다. 즉, 종속 서비스를 실행하기 전에 지정된 서비스를 실행해야 합니다.
구문
BOOL EnumDependentServicesW(
[in] SC_HANDLE hService,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSW lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned
);
매개 변수
[in] hService
서비스에 대한 핸들입니다. 이 핸들은 OpenService 또는 CreateService 함수에서 반환되며 SERVICE_ENUMERATE_DEPENDENTS 액세스 권한이 있어야 합니다. 자세한 내용은 서비스 보안 및 액세스 권한을 참조하세요.
[in] dwServiceState
열거할 서비스의 상태입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
[out, optional] lpServices
데이터베이스의 각 종속 서비스에 대한 이름 및 서비스 상태 정보를 수신하는 ENUM_SERVICE_STATUS 구조의 배열에 대한 포인터입니다. 버퍼는 구조체와 멤버가 가리키는 문자열을 포함할 수 있을 만큼 커야 합니다.
이 배열의 서비스 순서는 서비스의 시작 순서와 반대입니다. 즉, 배열의 첫 번째 서비스는 마지막으로 시작될 서비스이고 배열의 마지막 서비스는 먼저 시작되는 서비스입니다.
이 배열의 최대 크기는 64,000바이트입니다. 필요한 크기를 확인하려면 이 매개 변수에 NULL 을 지정하고 cbBufSize 매개 변수에 대해 0을 지정합니다. 함수가 실패하고 GetLastError 가 ERROR_MORE_DATA 반환합니다. pcbBytesNeeded 매개 변수는 필요한 크기를 받습니다.
[in] cbBufSize
lpServices 매개 변수가 가리키는 버퍼의 크기(바이트)입니다.
[out] pcbBytesNeeded
서비스 항목의 배열을 저장하는 데 필요한 바이트 수를 수신하는 변수에 대한 포인터입니다. 변수는 lpServices가 가리키는 버퍼가 너무 작아서 함수 오류 및 ERROR_MORE_DATA 오류로 표시되는 경우에만 이 값을 받습니다. 그렇지 않으면 pcbBytesNeeded의 콘텐츠가 정의되지 않습니다.
[out] lpServicesReturned
반환된 서비스 항목 수를 수신하는 변수에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
서비스 제어 관리자가 다음 오류 코드를 설정할 수 있습니다. 다른 오류 코드는 서비스 제어 관리자가 호출하는 레지스트리 함수에 의해 설정될 수 있습니다.
반환 코드 | 설명 |
---|---|
|
핸들에 SERVICE_ENUMERATE_DEPENDENTS 액세스 권한이 없습니다. |
|
지정한 핸들이 잘못되었습니다. |
|
지정된 매개 변수가 잘못되었습니다. |
|
lpServices가 가리키는 버퍼가 충분히 크지 않습니다. 함수는 lpServicesRe 가 가리키는 변수를 버퍼에 저장된 실제 서비스 항목 수로 설정합니다. 함수는 pcbBytesNeeded가 가리키는 변수를 모든 서비스 항목을 저장하는 데 필요한 바이트 수로 설정합니다. |
설명
반환된 서비스 항목은 그룹 순서를 고려하여 시작 순서의 역순으로 정렬됩니다. 종속 서비스를 중지해야 하는 경우 lpServices 버퍼에 기록된 항목의 순서를 사용하여 종속 서비스를 적절한 순서로 중지할 수 있습니다.
예제
예를 들어 서비스 중지를 참조하세요.
참고
winsvc.h 헤더는 ENumDependentServices를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winsvc.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |