Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Десериализует сериализованный буфер в объект 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) |