#ifndef _NTPOAPI_H
// rev
//CONST POWER_INFORMATION_BBR_DIRECT_ACCESS_REQUEST_CATEGORY BlackBoxCategories[24] =
//{
// { 0, "SCM", PopBlackBoxScmGuid },
// { 1, "BSD", PopBlackBoxBsdGuid },
// { 2, "PNP", PopBlackBoxPnpGuid },
// { 3, "ACPI", PopBlackBoxAcpiGuid },
// { 4, "POIRP", PopBlackBoxPoIrpGuid },
// { 5, "WINLOGON-NOTIFY", PopBlackBoxWinLogonNotifyGuid },
// { 6, "PDCLOCK", PopBlackBoxPdcLockGuid },
// { 7, "PEPWORKORDER", PopBlackBoxPoPepWorkOrderGuid },
// { 8, "POWERWATCHDOG", PopBlackBoxPoPowerWatchdogGuid },
// { 9, "PNPEVENTWORKER", PopBlackBoxPnpEventWorkerGuid },
// { 10, "DEVICECOMPLETIONQUEUE", PopBlackBoxPnpDeviceCompletionQueueGuid },
// { 11, "PNPDELAYEDREMOVEWORKER", PopBlackBoxPnpDelayedRemoveWorkerGuid },
// { 12, "DXG-DISPLAY", PopBlackBoxDxgDisplayGuid },
// { 13, "CrashedProcess", PopBlackBoxCrashedProcessGuid },
// { 14, "UsoCommit", PopBlackBoxUsoCommitGuid },
// { 15, "WHEA", PopBlackBoxWheaGuid },
// { 16, "NTFS", PopBlackBoxNtfsGuid },
// { 17, "Winlogon", PopBlackBoxWinLogonGuid },
// { 18, "Explorer logon tasks", PopBlackBoxExplorerLogonTasksGuid },
// { 19, "Explorer core startup", PopBlackBoxExplorerCoreStartupGuid },
// { 20, "User mode LKD API caller data", PopBlackBoxUserModeLKDReasonGuid },
// { 21, "CI", PopBlackBoxCodeIntegrityGuid },
// { 22, "CSR", PoBlackBoxIdCsrGuid },
// { 23, "SM", PoBlackBoxIdSmGuid },
//};
// rev
/**
* The POWER_INFORMATION_BBR_UPDATE_REQUEST_INPUT structure contains the input parameters for the UpdateBlackBoxRecorder (94) information level,
* used to write a payload into the power black-box recorder entry selected by Index.
* \remarks InputBufferLength must be sizeof(POWER_INFORMATION_BBR_UPDATE_REQUEST_INPUT) (0x20). Layout reversed from PopBlackBoxUpdate.
*/
typedef struct _POWER_INFORMATION_BBR_UPDATE_REQUEST_INPUT
{
PVOID Buffer; // Source data copied into the recorder entry.
SIZE_T Length; // Length, in bytes, of the data at Buffer.
SIZE_T Offset; // Destination offset within the entry (used when Flags & 1).
ULONG Index; // Recorder entry/category index (valid range 0..24).
ULONG Flags; // Bit 0: 1 = write Length bytes at Offset, 0 = replace snapshot (up to 4096 bytes).
} POWER_INFORMATION_BBR_UPDATE_REQUEST_INPUT, *PPOWER_INFORMATION_BBR_UPDATE_REQUEST_INPUT;
View code on GitHubNo description available.