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
標頭 mi.h
可轉散發套件 windows Server 2008 R2 SP1、Windows 7 SP1 和 Windows Server 2008 SP2 上的 Windows Management Framework 3.0