PSHED_PI_GET_ALL_ERROR_SOURCES回呼函式 (ntddk.h)
PSHED 外掛程式的 GetAllErrorSources 回呼函式會傳回錯誤來源描述項結構清單,代表硬體平台實作的所有錯誤來源。
語法
PSHED_PI_GET_ALL_ERROR_SOURCES PshedPiGetAllErrorSources;
NTSTATUS PshedPiGetAllErrorSources(
[in, out, optional] PVOID PluginContext,
[in, out] PULONG Count,
[in, out] PWHEA_ERROR_SOURCE_DESCRIPTOR *ErrorSrcs,
[in, out] PULONG Length
)
{...}
參數
[in, out, optional] PluginContext
當 PSHED 外掛程式呼叫 PshedRegisterPlugin 函式,以向 PSHED 註冊本身時,在 ContextWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 成員中指定的內容區域指標。
[in, out] Count
ULONG 型別變數的指標。 呼叫 GetAllErrorSources 回呼函式時,此變數會包含由 PSHED 所提供的 ErrorSources 參數所指向之緩衝區中的錯誤來源描述元結構數目。 如果 getAllErrorSources 回呼函式 變更緩衝區中的錯誤來源描述元結構數目,則它必須在傳回之前,將此變數設定為新的錯誤來源描述元結構數目。
[in, out] ErrorSrcs
緩衝區的指標,接收 WHEA_ERROR_SOURCE_DESCRIPTOR 結構的陣列,表示硬體平臺實作的所有錯誤來源。 呼叫 getAllErrorSources 回呼函式時,這個緩衝區會包含 PSHED 所提供的錯誤來源描述元結構初始清單。 PSHED 外掛程式可以變更清單,使其準確地代表硬體平台實作的所有錯誤來源。
[in, out] Length
ULONG 型別變數的指標,其中包含 ErrorSources 參數所指向之緩衝區的大小,以位元組為單位。 如果大小太小而無法包含錯誤來源描述元結構的修改清單,GetAllErrorSources 回呼函式會將此變數設定為包含清單並傳回STATUS_BUFFER_TOO_SMALL所需的緩衝區大小。
傳回值
PSHED 外掛程式的 GetAllErrorSources 回呼函式會傳回下列其中一個 NTSTATUS 程式代碼:
傳回碼 | 描述 |
---|---|
STATUS_SUCCESS | ErrorSources 參數指向的緩衝區中,已成功傳回錯誤來源描述元結構的修改清單。 |
STATUS_BUFFER_TOO_SMALL | ErrorSources 參數所指向的緩衝區大小太小,無法包含錯誤來源描述元結構的清單。 |
STATUS_UNSUCCESSFUL | 發生錯誤。 |
言論
參與錯誤來源探索的 PSHED 外掛程式會將 Callbacks.GetAllErrorSourcesWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的成員設定為在外掛程式呼叫 PshedRegisterPlugin 函式時,指向其 GetAllErrorSources 回呼函式。 PSHED 外掛程式也必須在 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的 FunctionalAreaMask 成員中設定 PshedFADiscovery 旗標。
當作系統啟動時,Windows 核心會呼叫 PSHED,以擷取錯誤來源描述元結構清單,此結構代表硬體平臺實作的所有錯誤來源。 PSHED 會建立錯誤來源描述元結構的初始清單。 如果 PSHED 外掛程式已註冊以參與錯誤來源探索,PSHED 會呼叫 PSHED 外掛程式的 GetAllErrorSources 回呼函式。 PSHED 外掛程式可以對錯誤來源描述項結構清單進行下列任何變更,以便準確地代表硬體平台實作的所有錯誤來源。
修改一或多個錯誤來源描述元結構的內容。
從清單中移除一或多個錯誤來源描述元結構。
將一或多個新的錯誤來源描述元結構新增至清單。
如果 PSHED 外掛程式必須將一或多個新的錯誤來源描述元結構新增至清單中,且緩衝區的大小太小而無法包含其他結構,則 PSHED 外掛程式的 GetAllErrorSources 回呼函式必須將 Length 參數指向的變數設定為包含其他結構的清單所需的緩衝區大小,並傳回STATUS_BUFFER_TOO_SMALL。 在此情況下,PSHED 會配置較大的緩衝區、將錯誤來源描述項結構清單複製到新的緩衝區,並第二次呼叫 PSHED 外掛程式的 GetAllErrorSources 回呼函式。
參與錯誤來源探索的 PSHED 外掛程式也可以實作選擇性的 GetErrorSourceInfo 回呼函式。 在此情況下,PSHED 外掛程式也會設定 Callbacks.GetErrorSourceInfoWHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的成員,以在呼叫 PSHED PshedRegisterPlugin 函式時指向其 GetErrorSourceInfo 回呼函式。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | ntddk.h (包括 Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |