функция MI_Deserializer_DeserializeInstance (mi.h)

Десериализует сериализованный буфер в объект 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. Десериализатор должен соответствовать сериализатору, создавшего буфер.

flags

Этот параметр должен иметь значение 0.

serializedBuffer

Сериализованный буфер, который был заполнен с помощью вызова из MI_Serializer_SerializeClass.

serializedBufferLength

Длина буфера, сообщаемого при вызове MI_Serializer_SerializeClass.

classObjects

Если экземпляр был сериализован без сведений о классе, требуется массив указателей на все классы, необходимые для перестроения экземпляра. В противном случае можно передать значение NULL .

numberClassObjects

Количество объектов класса в массиве classObjects .

[in, optional] classObjectNeeded

Функция обратного вызова, используемая для предоставления запрошенного объекта класса во время десериализации. См . MI_Deserializer_ClassObjectNeeded.

[in, out] classObjectNeededContext

Указатель на контекст, используемый с функцией обратного вызова.

[out, optional] serializedBufferRead

Объем сериализованного буфера, который был считан (десериализован).

instanceObject

Возвращенный десериализованный экземпляр. Этот класс необходимо удалить с помощью MI_Instance_Delete.

cimErrorDetails

Если вызов завершается сбоем, это значение будет содержать сведения, полезные для отладки. Это значение необходимо удалить с помощью MI_Instance_Delete.

Возвращаемое значение

Эта функция возвращает MI_INLINE MI_Result.

Комментарии

Десериализация экземпляров с внедренными свойствами объекта и ссылочного объекта немного сложнее, если сериализованный экземпляр не содержит определения класса, включенного в сериализованный BLOB-объект. Если определение класса включается в экземпляр , эта проблема не возникает. Если класс не задан, десериализатору экземпляра требуется передать класс экземпляра вместе с определениями классов для всех внедренных объектов и ссылочных свойств объекта. Их можно включить с помощью параметра массива classObjects или запросить с помощью обратного вызова classObjectNeeded .

Требования

   
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Windows
Header mi.h
Распространяемые компоненты Windows Management Framework 3.0 в Windows Server 2008 R2 с пакетом обновления 1 (SP1), Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 с пакетом обновления 2 (SP2)