다음을 통해 공유


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
헤더
Wbemdisp.h
유형 라이브러리
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_ISWbemServicesEx
IID
IID_ISWbemServicesEx