다음을 통해 공유


Win32_SystemDriver 클래스의 메서드 만들기

WMI 클래스만들기 메서드는 시스템 드라이버에서 관리하는 새 서비스를 만듭니다. Win32_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자입니다. Service Control Manager 데이터베이스는 문자의 대/소문자를 유지하지만 서비스 이름 비교는 항상 대/소문자를 구분하지 않습니다. 슬래시(/) 및 이중 백 슬래시(\)가 잘못된 서비스 이름 문자입니다.

DisplayName [in]

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

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

예: "Atdisk".

PathName [in]

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

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

ServiceType [in]

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

1(0x1)

커널 드라이버

2(0x2)

파일 시스템 드라이버

4(0x4)

어댑터

8(0x8)

Recognizer 드라이버

16(0x10)

자체 프로세스

32(0x20)

프로세스 공유

256 (0x100)

대화형 프로세스

ErrorControl [in]

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

0

"무시"

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

1

"Normal"

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

2

"심각"

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

3

"중요"

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

StartMode [in]

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

부팅

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

시스템

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

자동 번역

시스템 시작 중에 Service Control Manager에서 자동으로 시작하는 서비스입니다.

수동

프로세스가 StartService 메서드를 호출할 때 Service Control Manager에서 시작할 서비스입니다.

비활성화

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

DesktopInteract [in]

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

StartName [in]

서비스가 실행되는 계정 이름입니다. 서비스 유형에 따라 계정 이름은 DomainName\Username 또는 UPN(사용자 계정 이름) 형식(Username@DomainName) 형식일 수 있습니다. 서비스 프로세스는 실행될 때 이러한 두 가지 양식 중 하나를 사용하여 기록됩니다. 계정이 기본 제공 도메인에 속하는 경우 .\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이거나 빈 문자열을 가리키는 경우 서비스에 종속성이 없습니다. 서비스에 대한 종속성은 종속된 서비스가 실행 중인 경우에만 이 서비스를 실행할 수 있음을 의미합니다.

반환 값

서비스가 성공적으로 만들어진 경우 0 값, 요청이 지원되지 않는 경우 1(1) 및 오류를 나타내는 다른 숫자를 반환합니다.

요구 사항

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

추가 정보

운영 체제 클래스

Win32_SystemDriver