rpcErrorGetNextRecord 函式 (rpcasync.h)
RpcErrorGetNextRecord 函式會擷取列舉句柄的下一個擴充錯誤信息記錄。
語法
RPC_STATUS RpcErrorGetNextRecord(
[in] RPC_ERROR_ENUM_HANDLE *EnumHandle,
[in] BOOL CopyStrings,
[out] RPC_EXTENDED_ERROR_INFO *ErrorInfo
);
參數
[in] EnumHandle
列舉句柄的指標,格式為 RPC_ERROR_ENUM_HANDLE 結構。 結構必須由呼叫端配置,而且必須在作業完成之前釋放。 輸入時會忽略所有成員。
[in] CopyStrings
指定 ErrorInfo 中的字串欄位是否複製到預設系統堆積,此時這些緩衝區的擁有權會轉移到呼叫端。
TRUE 表示字串要複製到系統堆積。
FALSE 表示 ErrorInfo 中的字串指向內部 RPC 數據結構;呼叫端無法釋放或寫入呼叫它們,而且呼叫 RpcErrorEndEnumeration 函式後會變成無效。
[out] ErrorInfo
RPC_EXTENDED_ERROR_INFO 結構的指標。 請參閱<備註>。
傳回值
如果 CopyStrings 為 false,除非函數調用的參數無效,否則函式呼叫無法失敗。 擷取最後一個擴充錯誤記錄時, RpcErrorGetNextRecord 會傳回RPC_S_OK。 任何後續呼叫都會傳回RPC_S_ENTRY_NOT_FOUND。
發生任何錯誤時,列舉位置不會進階。
注意 如需有效錯誤碼的清單,請參閱 RPC 傳回值。
備註
輸入時,必須在 ErrorInfo 中設定下列欄位:
- 版本 必須設定為 RPC_EEINFO_VERSION。
- NumberOfParameters 必須設定為介於零和 MaxNumberOfEEInfoParams 之間的值。 呼叫端是免費的,可為任意數目的參數提供空間。 如果呼叫端所提供的參數數目小於擴充錯誤記錄中的參數數目,則會傳回RPC_S_BUFFER_TOO_SMALL。
- 旗標 必須為零,或必須指定 EEInfoUseFileTime 。 如果 Flags 為零,則會使用 u 等位的 SystemTime 成員。 如果指定 EEInfoUseFileTime ,則會使用 u 等位的 FileTime 成員。
輸出時, ErrorInfo 中的欄位會填入,如下所示:
- 版本 未變更。
- 如果記錄中沒有計算機名稱,則 ComputerName 為 NULL;如果電腦名稱存在於擴充錯誤信息記錄中,則為 Unicode 字串。 如果 為 NULL,則可以假設具有電腦名稱的最後一筆記錄,不過,可能已經卸除計算機名稱,因為記憶體不足。 ComputerName 是非限定 DNS 名稱。
- ProcessID 是記錄產生所在進程的 PID。
- SystemTime 或 FileTime 是產生記錄的時間,以 UCT 表示,用於產生記錄的電腦。 FileTime 或 SystemTime 是否有效,取決於是否使用 EEInfoUseFileTime。
- GeneratingComponent 是產生元件的程序代碼。
- Status 是記錄的狀態代碼。
- DetectionLocation 是偵測位置的程序代碼。
- 旗標 會指定是否遺漏記錄。 如果遺失當前記錄之後遺失一或多個記錄,則會設定 EEInfoNextRecordsMissing 。 如果遺漏當前記錄之前的一或多個記錄,則會設定 EEInfoPreviousRecordsMissing 。
- NumberOfParameters 會指定真正的參數數目。 如果呼叫端指定的輸入空間超過記錄中的參數數目,則此欄位會包含所使用的參數數目。
- 參數是實際參數,以具有 NumberOfParameters 結構的RPC_EE_INFO_PARAM結構陣列的形式提供。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | rpcasync.h (包含 Rpc.h) |
程式庫 | Rpcrt4.lib |
Dll | Rpcrt4.dll |