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 註冊本身時,WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的內容成員中指定的內容區域指標。
[in, out] Count
ULONG 型別變數的指標。 呼叫 GetAllErrorSources 回呼函式時,此變數會包含錯誤來源描述項結構的數目,這些結構包含在 ErrorSources 參數所指向的緩衝區中,如 PSHED 所提供。 如果 GetAllErrorSources 回呼函式變更緩衝區中的錯誤來源描述項結構數目,它必須先將此變數設定為新的錯誤來源描述元結構數目,才能傳回。
[in, out] ErrorSrcs
緩衝區的指標,接收 WHEA_ERROR_SOURCE_DESCRIPTOR 結構的陣列,代表硬體平臺所實作的所有錯誤來源。 呼叫 GetAllErrorSources 回呼函式時,這個緩衝區會包含 PSHED 所提供的錯誤來源描述項結構的初始清單。 PSHED 外掛程式可以變更清單,使其正確地代表硬體平臺所實作的所有錯誤來源。
[in, out] Length
ULONG 型別變數的指標,其中包含 ErrorSources 參數所指向緩衝區的大小,以位元組為單位。 如果大小太小而無法包含錯誤來源描述項結構的修改清單, GetAllErrorSources 回呼函式會將此變數設定為包含清單並傳回STATUS_BUFFER_TOO_SMALL所需的緩衝區大小。
傳回值
PSHED 外掛程式的 GetAllErrorSources 回呼函式會傳回下列其中一個 NTSTATUS 程式代碼:
傳回碼 | Description |
---|---|
STATUS_SUCCESS | 錯誤來源描述項結構的修改清單已成功傳回 ErrorSources 參數指向的緩衝區中。 |
STATUS_BUFFER_TOO_SMALL | ErrorSources 參數指向的緩衝區大小太小,無法包含錯誤來源描述項結構的清單。 |
STATUS_UNSUCCESSFUL | 發生錯誤。 |
備註
參與錯誤來源探索的 PSHED 外掛程式會設定WHEA_PSHED_PLUGIN_REGISTRATION_PACKET結構的 Callbacks.GetAllErrorSources 成員,以在外掛程式呼叫 PshedRegisterPlugin 函式以向 PSHED 註冊本身時指向其 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 外掛程式也會設定 WHEA_PSHED_PLUGIN_REGISTRATION_PACKET 結構的 Callbacks.GetErrorSourceInfo 成員,以在呼叫 PshedRegisterPlugin 函式時指向其 GetErrorSourceInfo 回呼函式,以向 PSHED 註冊本身。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ntddk.h (包含 Ntddk.h) |
IRQL | IRQL = DISPATCH_LEVEL |