SWbemServicesEx.Put 메서드
SWbemServicesEx 개체의 Put 메서드는 개체에 바인딩된 네임스페이스에 개체를 저장하고 데이터가 기록된 개체의 경로가 포함된 SWbemObjectPath 개체를 반환합니다.
이 메서드는 반동기 모드에서 호출됩니다. 자세한 내용은 메서드 호출을 참조하세요.
이 구문에 대한 설명은 스크립팅 API의 문서 규칙을 참조하세요.
구문
objObjectPath = .Put( _
ByVal objWbemObject, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ] _
)
매개 변수
-
objWbemObject
-
필수 요소. 네임스페이스에 넣을 새 개체입니다. 새로 만든 개체 또는 수정된 개체일 수 있습니다.
-
iFlags [선택 사항]
-
이 매개 변수는 호출이 개체를 만들거나 업데이트하는지 여부와 호출이 즉시 반환되는지 여부를 결정합니다. 이 매개 변수는 다음 값을 허용할 수 있습니다.
-
wbemChangeFlagUpdateCompatible (0 (0x0))
-
파생 클래스가 없고 해당 클래스의 인스턴스가 없는 경우 클래스를 업데이트할 수 있습니다. 중요하지 않은 한정자(예: 설명 한정자)만 변경되는 경우 모든 경우에 업데이트를 허용합니다. 이 호출의 기본 동작이며 이전 버전의 WMI와의 호환성에 사용됩니다. 클래스에 인스턴스가 있는 경우 업데이트가 실패합니다.
-
wbemChangeFlagUpdateSafeMode (32 (0x20))
-
변경으로 인해 자식 클래스와 충돌하지 않을 경우 자식 클래스가 있더라도 클래스를 업데이트할 수 있습니다. 자식 클래스에서 이전에 언급되지 않은 기본 클래스에 새 속성을 추가할 때 이 플래그를 사용할 수 있습니다. 클래스에 인스턴스가 있는 경우 업데이트가 실패합니다.
-
wbemChangeFlagUpdateForceMode (64 (0x40))
-
이 플래그는 충돌하는 자식 클래스가 있을 때 클래스를 강제로 업데이트합니다. 예를 들어 이 플래그는 클래스 한정자를 자식 클래스에 정의한 경우 업데이트를 강제로 수행하며 기본 클래스는 기존 클래스와 충돌하는 동일한 한정자를 추가하려고 합니다. 강제 모드에서는 자식 클래스에서 충돌하는 한정자를 삭제하여 이 충돌이 해결됩니다. 클래스에 인스턴스가 있는 경우 업데이트가 실패합니다.
강제 모드를 사용하여 정적 클래스를 업데이트하면 해당 클래스의 모든 인스턴스가 삭제됩니다. 공급자 클래스의 강제 업데이트는 클래스의 인스턴스를 삭제하지 않습니다.
-
wbemChangeFlagCreateOrUpdate (0 (0x0))
-
클래스 또는 인스턴스가 없는 경우 이를 만들고 이미 있는 경우 이를 덮어쓰도록 합니다.
-
wbemChangeFlagCreateOnly (2 (0x2))
-
만들기에만 사용됩니다. 클래스 또는 인스턴스가 이미 있는 경우 호출이 실패합니다.
-
wbemChangeFlagUpdateOnly (1 (0x1))
-
이 호출이 업데이트만 수행하도록 합니다. 호출에 성공하려면 인스턴스가 있어야 합니다.
-
wbemFlagReturnImmediately (16 (0x10))
-
호출이 즉시 반환되도록 합니다.
-
wbemFlagReturnWhenComplete (0 (0x0))
-
작업이 완료될 때까지 이 호출을 차단합니다. 이 플래그는 동기 모드에서 메서드를 호출합니다.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
WMI가 기본 클래스 정의와 함께 클래스 수정 데이터를 반환하도록 합니다. 자세한 내용은 WMI 클래스 정보 지역화를 참조하세요.
objWbemNamedValueSet [optional]
일반적으로 이는 정의되지 않습니다. 그렇지 않으면 요청을 서비스하는 공급자가 사용할 수 있는 컨텍스트 정보를 나타내는 요소가 있는 SWbemNamedValueSet 개체입니다. 그러한 정보를 지원하거나 요구하는 공급자는 인식된 값 이름, 값의 데이터 형식, 허용된 값 및 의미 체계를 문서화해야 합니다.
반환 값
호출이 성공하면 SWbemObjectPath 개체가 반환됩니다. 이 개체는 WMI에 성공적으로 커밋된 인스턴스 또는 클래스의 개체 경로를 포함합니다.
오류 코드
Put 메서드가 완료되면 Err 개체에 다음 목록의 오류 코드 중 하나가 포함될 수 있습니다.
-
wbemErrAccessDenied - 2147749891(0x80041003)
-
현재 사용자에게 작업에 대한 권한이 없습니다.
-
wbemErrAlreadyExists - 2147749913(0x80041019)
-
wbemChangeFlagCreateOnly 플래그를 지정했지만 인스턴스가 이미 존재합니다.
-
wbemErrFailed - 2147749889(0x80041001)
-
알 수 없는 오류입니다.
-
wbemErrIllegalNull - 2147749898(0x8004100A)
-
NULL이 될 수 없는 속성에 대해 NULL 값이 지정되었습니다. 이러한 속성의 예제는 Key, Indexed 또는 Not_Null 한정자로 표시된 속성입니다.
-
wbemErrInvalidObject - 2147749908(0x80041014)
-
지정된 개체가 잘못되었습니다.
-
wbemErrInvalidParameter - 2147749896(0x80041008)
-
지정된 매개 변수가 잘못되었습니다.
-
wbemErrNotFound - 2147749890(0x80041002)
-
wbemChangeFlagUpdateOnly 플래그가 지정되었지만 인스턴스 또는 클래스가 없습니다.
-
wbemErrIncompleteClass - 2147749920(0x80041020)
-
클래스에 필요한 속성이 일부만 설정되었습니다.
-
wbemErrOutOfMemory - 2147749894(0x80041006)
-
메모리가 부족하여 작업을 완료할 수 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
CLSID |
CLSID_ISWbemServicesEx |
IID |
IID_ISWbemServicesEx |