직렬화된 버퍼를 MI_Instance 개체로 역직렬화합니다.
구문
MI_INLINE MI_Result MI_Deserializer_DeserializeInstance(
[in, out] MI_Deserializer *deserializer,
MI_Uint32 flags,
MI_Uint8 *serializedBuffer,
MI_Uint32 serializedBufferLength,
MI_Class **classObjects,
MI_Uint32 numberClassObjects,
[in, optional] MI_Deserializer_ClassObjectNeeded classObjectNeeded,
[in, out] void *classObjectNeededContext,
[out, optional] MI_Uint32 *serializedBufferRead,
MI_Instance **instanceObject,
MI_Instance **cimErrorDetails
);
매개 변수
[in, out] deserializer
MI_Application_NewDeserializer 호출에서 반환된 역직렬 변환기 개체에 대한 포인터입니다. 역직렬 변환기는 버퍼를 만든 serializer와 일치해야 합니다.
flags
이 매개 변수는 0이어야 합니다.
serializedBuffer
MI_Serializer_SerializeClass 호출을 통해 채워진 직렬화된 버퍼입니다.
serializedBufferLength
MI_Serializer_SerializeClass 호출을 통해 보고된 버퍼의 길이입니다.
classObjects
클래스 세부 정보 없이 instance serialize된 경우 instance 다시 빌드하는 데 필요한 모든 클래스에 대한 포인터 배열이 필요합니다. 그렇지 않으면 NULL 을 전달할 수 있습니다.
numberClassObjects
classObjects 배열의 클래스 개체 수입니다.
[in, optional] classObjectNeeded
역직렬화하는 동안 요청된 클래스 개체를 제공하는 데 사용되는 콜백 함수입니다. MI_Deserializer_ClassObjectNeeded 참조하세요.
[in, out] classObjectNeededContext
콜백 함수와 함께 사용되는 컨텍스트에 대한 포인터입니다.
[out, optional] serializedBufferRead
읽은 직렬화된 버퍼의 양입니다(역직렬화됨).
instanceObject
반환된 역직렬화된 instance. 이 클래스는 MI_Instance_Delete 통해 삭제해야 합니다.
cimErrorDetails
호출이 실패하면 이 값에는 디버깅에 유용한 정보가 포함됩니다. 이 값은 MI_Instance_Delete 통해 삭제해야 합니다.
반환 값
이 함수는 MI_INLINE MI_Result 반환합니다.
설명
직렬화된 instance 직렬화된 Blob에 포함된 클래스 정의가 없는 경우 포함된 개체 및 참조 개체 속성이 있는 인스턴스 역직렬화는 좀 더 복잡합니다. 클래스 정의가 instance 포함된 경우 이 문제가 발생하지 않습니다. 클래스가 지정되지 않은 경우 instance 역직렬 변환기에는 모든 포함된 개체 및 참조 개체 속성에 대한 클래스 정의와 함께 instance 클래스를 전달해야 합니다. classObjects 배열 매개 변수를 통해 포함하거나 classObjectNeeded 콜백을 통해 쿼리할 수 있습니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows 8 |
| 지원되는 최소 서버 | Windows Server 2012 |
| 대상 플랫폼 | Windows |
| 헤더 | mi.h |
| 재배포 가능 파일 | windows Server 2008 R2 SP1, Windows 7 SP1 및 Windows Server 2008 SP2의 Windows Management Framework 3.0 |