管理群組記錄
群組記錄是發佈至對等群組所有作用中成員的特定資料,例如聊天訊息或應用程式特定的狀態更新。 記錄是由 PEER_RECORD 結構表示,並包含下列對等資訊:
- 記錄識別碼是可唯一識別對等群組中記錄的值。
- 指定記錄類型的 GUID。 應用程式可以支援不同的記錄類型。 應用程式會根據記錄類型解譯記錄 的資料 欄位。 某些 GUID 是保留的,而 API 呼叫會在應用程式嘗試使用時傳回 PEER_E_NOT_AUTHORIZED 。
- 描述為 XML 字串的一組記錄屬性。 搜尋記錄時會使用屬性。 如需屬性的詳細資訊,請參閱 記錄屬性架構。
- 建立記錄的對等時間。
- 記錄到期的對等時間。
- 修改記錄的對等時間。
- 記錄的建立者。
- 修改記錄的成員。
- 包含此PEER_RECORD結構中所有欄位的密碼編譯簽章的PEER_DATA結構。 此欄位無法由對等直接更新或改變。
- 包含與此記錄相關聯的應用程式特定資料做為位元組陣列的 PEER_DATA 結構。 此欄位中存在的資料類型取決於應用程式定義的記錄類型。
取得對等群組記錄
系統會使用記錄的識別碼呼叫 PeerGroupGetRecord 來取得個別記錄。 處理特定類型的所有記錄時,會先呼叫 PeerGroupEnumRecords 來取得所有目前對等群組記錄的列舉集,然後反復呼叫 PeerGetNextItem ,直到擷取所有記錄為止。 完成時,請關閉列舉,並藉由呼叫 PeerEndEnumeration來釋放與其相關聯的記憶體。
當對等建立、刪除或更新記錄時,受影響的記錄會透過 PEER_GROUP_EVENT_RECORD_CHANGE 事件,發佈至對等群組的所有成員。 請注意,如果對等未連線到群組,則會在下一次連線時收到更新的記錄。 如果您的應用程式以任何有意義的方式維護或記錄管理,請務必向 PeerGroupRegisterEvent 註冊此事件。 或者,應用程式可以使用 PeerGroupSearchRecords視需要查詢記錄資料庫。
引發 PEER_GROUP_EVENT_RECORD_CHANGE 事件時,會以 PEER_EVENT_RECORD_CHANGE_DATA結構的形式 接收特定記錄識別碼和類型和變更類型 (新增、更新、刪除) 。 這個結構是透過對 PeerGroupGetEventData的呼叫來取得。 如果變更是新增或更新,您應該使用 PeerGroupGetRecord 來取得具有所提供識別碼的記錄。 基礎結構的本機記錄資料庫會自動更新。
您也可以根據PEER_RECORD pwzAttributes 欄位中提供的特定自訂屬性,以及任何預先定義的 屬性來搜尋特定記錄。 若要達成此目的,請使用 PeerGroupSearchRecords 函 式搭配格式化為 記錄搜尋查詢格式 主題中所指定的 XML 搜尋查詢。
如需在對等基礎結構中使用記錄的詳細資訊,請參閱使用對等基礎結構中的記錄主題。
對等群組記錄的管理
當對等群組的建立者發出初始邀請時,每當特定成員透過 PeerGroupCreateInvitation 或 PeerGroupIssueCredentials) 發出新認證給 (使用者時,就可以指定特定成員在系統管理角色中 (PEER_GROUP_ROLE_ADMIN) 。 系統管理員能夠直接新增、刪除及更新任何對等群組記錄。 相反地,其角色設定為 PEER_GROUP_ROLE_MEMBER 或 PEER_GROUP_ROLE_INVITING_MEMBER 的對等群組成員只能新增、更新和刪除自己的記錄 () 。
建立者預設具有系統管理員角色。
若要更新記錄,請使用 PeerGroupGetRecord 或 PeerGroupEnumRecords取得記錄、進行變更,並將更新的記錄傳遞至 PeerGroupUpdateRecord。
若要刪除記錄,請將要刪除的記錄識別碼傳遞至 PeerGroupDeleteRecord。
若要新增記錄,請建立新的 PEER_RECORD 結構,並填入下欄欄位:
- dwSize。 此欄位包含 sizeof (PEER_RECORD) 的值。
- ftExpiration。 此欄位包含此記錄的到期日期和時間,以對等時程表示為 FILETIME 結構。
- 類型。 此欄位包含 GUID 值,可識別應用程式的記錄類型。 如果此類型是應用程式基礎結構的自訂類型,您也應該填入 資料 欄位。
基礎結構會填入下欄欄位,如果應用程式設定,則會忽略:
- id
- pwzCreatorId
- pwzLastModifiedById
- ftCreation
- ftLastModified
- securityData
其餘欄位是選擇性的。 若要將此新記錄新增至對等群組,請將它傳遞至 PeerGroupAddRecord。
匯入和匯出記錄
對等群組記錄會以資料庫的形式在本機維護。 若要將對等群組記錄資料庫的目前快照集儲存至本機檔案,請呼叫 PeerGroupExportDatabase,並將控制碼傳遞給對等群組。 然後,此檔案可以傳輸至不同的電腦或應用程式,藉由呼叫 PeerGroupImportDatabase來擷取及使用此記錄資料庫。