Win32_BaseService 클래스의 메서드 만들기

WMI 클래스만들기 메서드는 새 서비스를 만듭니다. LoadOrderGroup 매개 변수는 실행 종속성을 정의하는 시스템 서비스 그룹을 나타냅니다. 서비스는 서로 종속되기 때문에 부하 주문 그룹에서 지정한 순서대로 서비스를 시작해야 합니다. 이러한 종속 서비스를 사용하려면 선행 서비스가 올바르게 작동해야 합니다.

이 항목에서는 MOF(Managed Object Format) 구문을 사용합니다. 이 메서드를 사용하는 방법에 대한 자세한 내용은 메서드 호출을 참조하세요.

구문

uint32 Create(
  [in] string  Name,
  [in] string  DisplayName,
  [in] string  PathName,
  [in] uint8   ServiceType,
  [in] uint8   ErrorControl,
  [in] string  StartMode,
  [in] boolean DesktopInteract,
  [in] string  StartName,
  [in] string  StartPassword,
  [in] string  LoadOrderGroup,
  [in] string  LoadOrderGroupDependencies[],
  [in] string  ServiceDependencies[]
);

매개 변수

Name [in]

Create 메서드에 설치할 서비스의 이름입니다. 최대 문자열 길이는 256자입니다. 서비스 제어 관리자 데이터베이스는 문자의 대/소문자를 유지하지만 서비스 이름 비교는 항상 대/소문자를 구분하지 않습니다. 슬래시(/) 및 이중 백 슬래시(\)가 잘못된 서비스 이름 문자입니다.

DisplayName [in]

서비스의 표시 이름입니다. 이 문자열의 최대 길이는 256자입니다. 이름은 서비스 제어 관리자에서 대/소문자를 유지합니다. DisplayName 비교는 항상 대/소문자를 구분하지 않습니다.

제약 조건: Name 매개 변수와 동일한 값을 허용합니다.

예: "Atdisk".

PathName [in]

서비스를 구현하는 실행 파일의 정규화된 경로입니다.

예: "\SystemRoot\System32\drivers\afd.sys".

ServiceType [in]

호출하는 프로세스에 제공되는 서비스 유형입니다. 값은 비트맵입니다.

커널 드라이버 (1)

파일 시스템 드라이버 (2)

어댑터 (4)

인식기 드라이버 (8)

자체 프로세스 (16)

공유 프로세스 (32)

256

대화형 프로세스

ErrorControl [in]

Create 메서드가 시작되지 않는 경우 오류의 심각도입니다. 값은 오류가 발생하는 경우 시작 프로그램에서 수행한 작업을 나타냅니다. 모든 오류는 시스템에 의해 기록됩니다.

무시 (0)

사용자에게 오류를 알리지 않습니다.

보통 (1)

사용자에게 오류를 알립니다.

심각 (2)

마지막으로 성공한 올바른 구성으로 시스템을 다시 시작합니다.

위험 (3)

시스템은 좋은 구성으로 시작하려고 시도합니다.

StartMode [in]

Windows 기본 서비스의 시작 모드입니다.

부팅 시작 ("부팅")

운영 체제 로더에서 시작한 디바이스 드라이버입니다. 이 값은 드라이버 서비스에 대해서만 유효합니다.

시스템 시작 ("시스템")

운영 체제 초기화 프로세스에서 시작된 디바이스 드라이버입니다. 이 값은 드라이버 서비스에 대해서만 유효합니다.

자동 시작 ("자동")

시스템 시작 중 서비스 제어 관리자에 의해 자동으로 서비스가 시작됩니다.

수요 시작 ("수동")

프로세스가 StartService 메서드를 호출할 때 서비스 제어 관리자가 시작할 서비스입니다.

사용 안 함("사용 안 함")

더 이상 시작할 수 없는 서비스입니다.

DesktopInteract [in]

true이면 서비스는 데스크톱에서 창을 만들거나 통신할 수 있습니다.

StartName [in]

서비스가 실행되는 계정 이름입니다. 서비스 유형에 따라 계정 이름은 "DomainName\Username" 형식일 수 있습니다. 서비스 프로세스는 실행될 때 이러한 두 가지 양식 중 하나를 사용하여 기록됩니다. 계정이 기본 제공 도메인에 속하는 경우 ".\Username"을 지정할 수 있습니다. NULL을 지정하면 서비스가 LocalSystem 계정으로 로그온됩니다. 커널 또는 시스템 수준 드라이버의 경우 StartName 에는 입력 및 출력(I/O) 시스템에서 디바이스 드라이버를 로드하는 데 사용하는 드라이버 개체 이름(즉, \FileSystem\Rdr 또는 \Driver\Xns)이 포함됩니다. NULL을 지정하면 드라이버가 서비스 이름에 따라 I/O 시스템에서 만든 기본 개체 이름으로 실행됩니다. 예: DWDOM\관리.

StartPassword [in]

StartName 매개 변수로 지정된 계정 이름에 대한 암호입니다. 암호를 변경하지 않는 경우 NULL 을 지정합니다. 서비스에 암호가 없으면 빈 문자열을 지정합니다.

LoadOrderGroup [in]

새 서비스와 연결된 그룹 이름입니다. 부하 순서 그룹은 레지스트리에 포함되며 서비스가 운영 체제에 로드되는 순서를 결정합니다. 포인터가 NULL 이거나 빈 문자열을 가리키는 경우 서비스는 그룹에 속하지 않습니다. 그룹 간의 종속성은 LoadOrderGroupDependencies 매개 변수에 나열되어야 합니다. 부하 순서 그룹 목록의 서비스가 먼저 시작되고, 그 다음에는 부하 순서 그룹 목록에 없는 그룹의 서비스, 그룹에 속하지 않는 서비스가 차례로 시작됩니다. 레지스트리에는 다음 위치에 있는 부하 순서 그룹 목록이 있습니다.

Hkey_local_machine\시스템\CurrentControlSet\컨트롤\ServiceGroupOrder

LoadOrderGroupDependencies [in]

이 서비스 전에 시작해야 하는 부하 순서 그룹 배열입니다. 배열의 각 항목은 NULL 로 구분되고 목록은 두 개의 NULL 값으로 종료됩니다. Visual Basic 또는 스크립트에서 vbArray를 전달할 수 있습니다. 포인터가 NULL 이거나 빈 문자열을 가리키는 경우 서비스에 종속성이 없습니다. 서비스 및 서비스 그룹이 동일한 네임스페이스를 공유하기 때문에 그룹 이름은 서비스 이름과 구분하려면 SC_GROUP_IDENTIFIER(Winsvc.h 파일에 정의됨) 문자로 접두사를 지정해야 합니다. 그룹에 대한 종속성은 그룹의 모든 멤버를 시작하는 시도 후 그룹의 구성원 중 하나 이상이 실행되는 경우 이 서비스를 실행할 수 있음을 의미합니다.

ServiceDependencies [in]

이 서비스가 시작되기 전에 시작해야 하는 서비스 이름이 들어 있는 배열입니다. 배열의 각 항목은 NULL 로 구분되고 목록은 두 개의 NULL 값으로 종료됩니다. Visual Basic 또는 스크립트에서 vbArray를 전달할 수 있습니다. 포인터가 NULL이거나 빈 문자열을 가리키는 경우 서비스에 종속성이 없습니다. 서비스에 대한 종속성은 종속된 서비스가 실행 중인 경우에만 이 서비스를 실행할 수 있음을 의미합니다.

반환 값

다음 목록에 나열된 값 또는 오류를 나타내는 다른 값 중 하나를 반환합니다.

Success

0

요청이 수락되었습니다.

지원 안 됨

1

요청이 지원되지 않습니다.

액세스 거부됨

2

사용자에게 필요한 액세스 권한이 없습니다.

실행 중인 종속 서비스

3

실행 중인 다른 서비스가 이 서비스에 종속되어 있어서 이 서비스를 중지할 수 없습니다.

잘못된 서비스 제어

4

요청한 제어 코드가 잘못되었거나 서비스에 사용할 수 없습니다.

서비스에서 제어를 허용할 수 없음

5

요청된 제어 코드는 서비스 상태(Win32_BaseService 때문에 서비스로 보낼 수 없습니다. State 속성)은 0, 1 또는 2와 같습니다.

서비스가 활성화되지 않음

6

서비스가 시작되지 않았습니다.

서비스 요청 시간 제한

7

서비스가 시작 요청에 시기 적절하게 응답하지 않았습니다.

알 수 없는 오류

8

대화형 프로세스.

경로를 찾을 수 없음

9

서비스 실행 파일의 디렉터리 경로를 찾을 수 없습니다.

이미 실행 중인 서비스

10

서비스가 이미 실행되고 있습니다.

서비스 데이터베이스가 잠김

11

새 서비스를 추가할 데이터베이스가 잠겨 있습니다.

서비스 종속성 삭제됨

12

이 서비스의 종속성이 시스템에서 제거되었습니다.

서비스 종속성 오류

13

종속 서비스에서 필요한 서비스를 찾지 못했습니다.

서비스 사용 안 함

14

서비스가 시스템에서 비활성화되었습니다.

서비스 로그온 실패

15

서비스에 시스템에서 실행하기 위한 올바른 인증이 없습니다.

삭제로 표시된 서비스

16

이 서비스는 시스템에서 제거되고 있습니다.

서비스 스레드 없음

17

서비스에 대한 실행 스레드가 없습니다.

상태 순환 종속성

18

서비스 시작 시 순환 종속성이 있습니다.

상태 중복 이름

19

같은 이름으로 실행 중인 서비스가 있습니다.

상태가 잘못된 이름

20

서비스 이름에 잘못된 문자가 있습니다.

잘못된 상태 매개 변수

21

잘못된 매개 변수가 서비스에 전달되었습니다.

잘못된 서비스 계정 상태

22

이 서비스를 실행할 계정이 잘못되었거나 서비스를 실행할 수 있는 권한이 없습니다.

상태 서비스 존재

23

서비스가 시스템에서 사용할 수 있는 서비스 데이터베이스에 있습니다.

서비스가 이미 일시 중지됨

24

서비스가 현재 시스템에서 일시 중지되었습니다.

기타

25 4294967295

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista
지원되는 최소 서버
Windows Server 2008
네임스페이스
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

추가 정보

운영 체제 클래스

Win32_BaseService