zigwin32/win32/system/error_reporting.zig

906 lines
34 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (45)
//--------------------------------------------------------------------------------
pub const WER_FAULT_REPORTING_NO_UI = @as(u32, 32);
pub const WER_FAULT_REPORTING_FLAG_NO_HEAP_ON_QUEUE = @as(u32, 64);
pub const WER_FAULT_REPORTING_DISABLE_SNAPSHOT_CRASH = @as(u32, 128);
pub const WER_FAULT_REPORTING_DISABLE_SNAPSHOT_HANG = @as(u32, 256);
pub const WER_FAULT_REPORTING_CRITICAL = @as(u32, 512);
pub const WER_FAULT_REPORTING_DURABLE = @as(u32, 1024);
pub const WER_MAX_TOTAL_PARAM_LENGTH = @as(u32, 1720);
pub const WER_MAX_PREFERRED_MODULES = @as(u32, 128);
pub const WER_MAX_PREFERRED_MODULES_BUFFER = @as(u32, 256);
pub const APPCRASH_EVENT = "APPCRASH";
pub const PACKAGED_APPCRASH_EVENT = "MoAppCrash";
pub const WER_P0 = @as(u32, 0);
pub const WER_P1 = @as(u32, 1);
pub const WER_P2 = @as(u32, 2);
pub const WER_P3 = @as(u32, 3);
pub const WER_P4 = @as(u32, 4);
pub const WER_P5 = @as(u32, 5);
pub const WER_P6 = @as(u32, 6);
pub const WER_P7 = @as(u32, 7);
pub const WER_P8 = @as(u32, 8);
pub const WER_P9 = @as(u32, 9);
pub const WER_FILE_COMPRESSED = @as(u32, 4);
pub const WER_SUBMIT_BYPASS_POWER_THROTTLING = @as(u32, 16384);
pub const WER_SUBMIT_BYPASS_NETWORK_COST_THROTTLING = @as(u32, 32768);
pub const WER_DUMP_MASK_START = @as(u32, 1);
pub const WER_DUMP_NOHEAP_ONQUEUE = @as(u32, 1);
pub const WER_DUMP_AUXILIARY = @as(u32, 2);
pub const WER_MAX_REGISTERED_ENTRIES = @as(u32, 512);
pub const WER_MAX_REGISTERED_METADATA = @as(u32, 8);
pub const WER_MAX_REGISTERED_DUMPCOLLECTION = @as(u32, 4);
pub const WER_METADATA_KEY_MAX_LENGTH = @as(u32, 64);
pub const WER_METADATA_VALUE_MAX_LENGTH = @as(u32, 128);
pub const WER_MAX_SIGNATURE_NAME_LENGTH = @as(u32, 128);
pub const WER_MAX_EVENT_NAME_LENGTH = @as(u32, 64);
pub const WER_MAX_PARAM_LENGTH = @as(u32, 260);
pub const WER_MAX_PARAM_COUNT = @as(u32, 10);
pub const WER_MAX_FRIENDLY_EVENT_NAME_LENGTH = @as(u32, 128);
pub const WER_MAX_APPLICATION_NAME_LENGTH = @as(u32, 128);
pub const WER_MAX_DESCRIPTION_LENGTH = @as(u32, 512);
pub const WER_MAX_BUCKET_ID_STRING_LENGTH = @as(u32, 260);
pub const WER_MAX_LOCAL_DUMP_SUBPATH_LENGTH = @as(u32, 64);
pub const WER_MAX_REGISTERED_RUNTIME_EXCEPTION_MODULES = @as(u32, 16);
pub const WER_RUNTIME_EXCEPTION_EVENT_FUNCTION = "OutOfProcessExceptionEventCallback";
pub const WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE_FUNCTION = "OutOfProcessExceptionEventSignatureCallback";
pub const WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH = "OutOfProcessExceptionEventDebuggerLaunchCallback";
//--------------------------------------------------------------------------------
// Section: Types (34)
//--------------------------------------------------------------------------------
pub const WER_FILE = enum(u32) {
ANONYMOUS_DATA = 2,
DELETE_WHEN_DONE = 1,
_,
pub fn initFlags(o: struct {
ANONYMOUS_DATA: u1 = 0,
DELETE_WHEN_DONE: u1 = 0,
}) WER_FILE {
return @as(WER_FILE, @enumFromInt(
(if (o.ANONYMOUS_DATA == 1) @intFromEnum(WER_FILE.ANONYMOUS_DATA) else 0)
| (if (o.DELETE_WHEN_DONE == 1) @intFromEnum(WER_FILE.DELETE_WHEN_DONE) else 0)
));
}
};
pub const WER_FILE_ANONYMOUS_DATA = WER_FILE.ANONYMOUS_DATA;
pub const WER_FILE_DELETE_WHEN_DONE = WER_FILE.DELETE_WHEN_DONE;
pub const WER_SUBMIT_FLAGS = enum(u32) {
ADD_REGISTERED_DATA = 16,
HONOR_RECOVERY = 1,
HONOR_RESTART = 2,
NO_ARCHIVE = 256,
NO_CLOSE_UI = 64,
NO_QUEUE = 128,
OUTOFPROCESS = 32,
OUTOFPROCESS_ASYNC = 1024,
QUEUE = 4,
SHOW_DEBUG = 8,
START_MINIMIZED = 512,
BYPASS_DATA_THROTTLING = 2048,
ARCHIVE_PARAMETERS_ONLY = 4096,
REPORT_MACHINE_ID = 8192,
_,
pub fn initFlags(o: struct {
ADD_REGISTERED_DATA: u1 = 0,
HONOR_RECOVERY: u1 = 0,
HONOR_RESTART: u1 = 0,
NO_ARCHIVE: u1 = 0,
NO_CLOSE_UI: u1 = 0,
NO_QUEUE: u1 = 0,
OUTOFPROCESS: u1 = 0,
OUTOFPROCESS_ASYNC: u1 = 0,
QUEUE: u1 = 0,
SHOW_DEBUG: u1 = 0,
START_MINIMIZED: u1 = 0,
BYPASS_DATA_THROTTLING: u1 = 0,
ARCHIVE_PARAMETERS_ONLY: u1 = 0,
REPORT_MACHINE_ID: u1 = 0,
}) WER_SUBMIT_FLAGS {
return @as(WER_SUBMIT_FLAGS, @enumFromInt(
(if (o.ADD_REGISTERED_DATA == 1) @intFromEnum(WER_SUBMIT_FLAGS.ADD_REGISTERED_DATA) else 0)
| (if (o.HONOR_RECOVERY == 1) @intFromEnum(WER_SUBMIT_FLAGS.HONOR_RECOVERY) else 0)
| (if (o.HONOR_RESTART == 1) @intFromEnum(WER_SUBMIT_FLAGS.HONOR_RESTART) else 0)
| (if (o.NO_ARCHIVE == 1) @intFromEnum(WER_SUBMIT_FLAGS.NO_ARCHIVE) else 0)
| (if (o.NO_CLOSE_UI == 1) @intFromEnum(WER_SUBMIT_FLAGS.NO_CLOSE_UI) else 0)
| (if (o.NO_QUEUE == 1) @intFromEnum(WER_SUBMIT_FLAGS.NO_QUEUE) else 0)
| (if (o.OUTOFPROCESS == 1) @intFromEnum(WER_SUBMIT_FLAGS.OUTOFPROCESS) else 0)
| (if (o.OUTOFPROCESS_ASYNC == 1) @intFromEnum(WER_SUBMIT_FLAGS.OUTOFPROCESS_ASYNC) else 0)
| (if (o.QUEUE == 1) @intFromEnum(WER_SUBMIT_FLAGS.QUEUE) else 0)
| (if (o.SHOW_DEBUG == 1) @intFromEnum(WER_SUBMIT_FLAGS.SHOW_DEBUG) else 0)
| (if (o.START_MINIMIZED == 1) @intFromEnum(WER_SUBMIT_FLAGS.START_MINIMIZED) else 0)
| (if (o.BYPASS_DATA_THROTTLING == 1) @intFromEnum(WER_SUBMIT_FLAGS.BYPASS_DATA_THROTTLING) else 0)
| (if (o.ARCHIVE_PARAMETERS_ONLY == 1) @intFromEnum(WER_SUBMIT_FLAGS.ARCHIVE_PARAMETERS_ONLY) else 0)
| (if (o.REPORT_MACHINE_ID == 1) @intFromEnum(WER_SUBMIT_FLAGS.REPORT_MACHINE_ID) else 0)
));
}
};
pub const WER_SUBMIT_ADD_REGISTERED_DATA = WER_SUBMIT_FLAGS.ADD_REGISTERED_DATA;
pub const WER_SUBMIT_HONOR_RECOVERY = WER_SUBMIT_FLAGS.HONOR_RECOVERY;
pub const WER_SUBMIT_HONOR_RESTART = WER_SUBMIT_FLAGS.HONOR_RESTART;
pub const WER_SUBMIT_NO_ARCHIVE = WER_SUBMIT_FLAGS.NO_ARCHIVE;
pub const WER_SUBMIT_NO_CLOSE_UI = WER_SUBMIT_FLAGS.NO_CLOSE_UI;
pub const WER_SUBMIT_NO_QUEUE = WER_SUBMIT_FLAGS.NO_QUEUE;
pub const WER_SUBMIT_OUTOFPROCESS = WER_SUBMIT_FLAGS.OUTOFPROCESS;
pub const WER_SUBMIT_OUTOFPROCESS_ASYNC = WER_SUBMIT_FLAGS.OUTOFPROCESS_ASYNC;
pub const WER_SUBMIT_QUEUE = WER_SUBMIT_FLAGS.QUEUE;
pub const WER_SUBMIT_SHOW_DEBUG = WER_SUBMIT_FLAGS.SHOW_DEBUG;
pub const WER_SUBMIT_START_MINIMIZED = WER_SUBMIT_FLAGS.START_MINIMIZED;
pub const WER_SUBMIT_BYPASS_DATA_THROTTLING = WER_SUBMIT_FLAGS.BYPASS_DATA_THROTTLING;
pub const WER_SUBMIT_ARCHIVE_PARAMETERS_ONLY = WER_SUBMIT_FLAGS.ARCHIVE_PARAMETERS_ONLY;
pub const WER_SUBMIT_REPORT_MACHINE_ID = WER_SUBMIT_FLAGS.REPORT_MACHINE_ID;
pub const WER_FAULT_REPORTING = enum(u32) {
FLAG_DISABLE_THREAD_SUSPENSION = 4,
FLAG_NOHEAP = 1,
FLAG_QUEUE = 2,
FLAG_QUEUE_UPLOAD = 8,
ALWAYS_SHOW_UI = 16,
_,
pub fn initFlags(o: struct {
FLAG_DISABLE_THREAD_SUSPENSION: u1 = 0,
FLAG_NOHEAP: u1 = 0,
FLAG_QUEUE: u1 = 0,
FLAG_QUEUE_UPLOAD: u1 = 0,
ALWAYS_SHOW_UI: u1 = 0,
}) WER_FAULT_REPORTING {
return @as(WER_FAULT_REPORTING, @enumFromInt(
(if (o.FLAG_DISABLE_THREAD_SUSPENSION == 1) @intFromEnum(WER_FAULT_REPORTING.FLAG_DISABLE_THREAD_SUSPENSION) else 0)
| (if (o.FLAG_NOHEAP == 1) @intFromEnum(WER_FAULT_REPORTING.FLAG_NOHEAP) else 0)
| (if (o.FLAG_QUEUE == 1) @intFromEnum(WER_FAULT_REPORTING.FLAG_QUEUE) else 0)
| (if (o.FLAG_QUEUE_UPLOAD == 1) @intFromEnum(WER_FAULT_REPORTING.FLAG_QUEUE_UPLOAD) else 0)
| (if (o.ALWAYS_SHOW_UI == 1) @intFromEnum(WER_FAULT_REPORTING.ALWAYS_SHOW_UI) else 0)
));
}
};
pub const WER_FAULT_REPORTING_FLAG_DISABLE_THREAD_SUSPENSION = WER_FAULT_REPORTING.FLAG_DISABLE_THREAD_SUSPENSION;
pub const WER_FAULT_REPORTING_FLAG_NOHEAP = WER_FAULT_REPORTING.FLAG_NOHEAP;
pub const WER_FAULT_REPORTING_FLAG_QUEUE = WER_FAULT_REPORTING.FLAG_QUEUE;
pub const WER_FAULT_REPORTING_FLAG_QUEUE_UPLOAD = WER_FAULT_REPORTING.FLAG_QUEUE_UPLOAD;
pub const WER_FAULT_REPORTING_ALWAYS_SHOW_UI = WER_FAULT_REPORTING.ALWAYS_SHOW_UI;
// TODO: this type has a FreeFunc 'WerReportCloseHandle', what can Zig do with this information?
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HREPORT = isize;
// TODO: this type has a FreeFunc 'WerStoreClose', what can Zig do with this information?
// TODO: this type has an InvalidHandleValue of '0', what can Zig do with this information?
pub const HREPORTSTORE = isize;
pub const WER_REPORT_UI = enum(i32) {
AdditionalDataDlgHeader = 1,
IconFilePath = 2,
ConsentDlgHeader = 3,
ConsentDlgBody = 4,
OnlineSolutionCheckText = 5,
OfflineSolutionCheckText = 6,
CloseText = 7,
CloseDlgHeader = 8,
CloseDlgBody = 9,
CloseDlgButtonText = 10,
Max = 11,
};
pub const WerUIAdditionalDataDlgHeader = WER_REPORT_UI.AdditionalDataDlgHeader;
pub const WerUIIconFilePath = WER_REPORT_UI.IconFilePath;
pub const WerUIConsentDlgHeader = WER_REPORT_UI.ConsentDlgHeader;
pub const WerUIConsentDlgBody = WER_REPORT_UI.ConsentDlgBody;
pub const WerUIOnlineSolutionCheckText = WER_REPORT_UI.OnlineSolutionCheckText;
pub const WerUIOfflineSolutionCheckText = WER_REPORT_UI.OfflineSolutionCheckText;
pub const WerUICloseText = WER_REPORT_UI.CloseText;
pub const WerUICloseDlgHeader = WER_REPORT_UI.CloseDlgHeader;
pub const WerUICloseDlgBody = WER_REPORT_UI.CloseDlgBody;
pub const WerUICloseDlgButtonText = WER_REPORT_UI.CloseDlgButtonText;
pub const WerUIMax = WER_REPORT_UI.Max;
pub const WER_REGISTER_FILE_TYPE = enum(i32) {
UserDocument = 1,
Other = 2,
Max = 3,
};
pub const WerRegFileTypeUserDocument = WER_REGISTER_FILE_TYPE.UserDocument;
pub const WerRegFileTypeOther = WER_REGISTER_FILE_TYPE.Other;
pub const WerRegFileTypeMax = WER_REGISTER_FILE_TYPE.Max;
pub const WER_FILE_TYPE = enum(i32) {
Microdump = 1,
Minidump = 2,
Heapdump = 3,
UserDocument = 4,
Other = 5,
Triagedump = 6,
CustomDump = 7,
AuxiliaryDump = 8,
EtlTrace = 9,
Max = 10,
};
pub const WerFileTypeMicrodump = WER_FILE_TYPE.Microdump;
pub const WerFileTypeMinidump = WER_FILE_TYPE.Minidump;
pub const WerFileTypeHeapdump = WER_FILE_TYPE.Heapdump;
pub const WerFileTypeUserDocument = WER_FILE_TYPE.UserDocument;
pub const WerFileTypeOther = WER_FILE_TYPE.Other;
pub const WerFileTypeTriagedump = WER_FILE_TYPE.Triagedump;
pub const WerFileTypeCustomDump = WER_FILE_TYPE.CustomDump;
pub const WerFileTypeAuxiliaryDump = WER_FILE_TYPE.AuxiliaryDump;
pub const WerFileTypeEtlTrace = WER_FILE_TYPE.EtlTrace;
pub const WerFileTypeMax = WER_FILE_TYPE.Max;
pub const WER_SUBMIT_RESULT = enum(i32) {
ReportQueued = 1,
ReportUploaded = 2,
ReportDebug = 3,
ReportFailed = 4,
Disabled = 5,
ReportCancelled = 6,
DisabledQueue = 7,
ReportAsync = 8,
CustomAction = 9,
Throttled = 10,
ReportUploadedCab = 11,
StorageLocationNotFound = 12,
SubmitResultMax = 13,
};
pub const WerReportQueued = WER_SUBMIT_RESULT.ReportQueued;
pub const WerReportUploaded = WER_SUBMIT_RESULT.ReportUploaded;
pub const WerReportDebug = WER_SUBMIT_RESULT.ReportDebug;
pub const WerReportFailed = WER_SUBMIT_RESULT.ReportFailed;
pub const WerDisabled = WER_SUBMIT_RESULT.Disabled;
pub const WerReportCancelled = WER_SUBMIT_RESULT.ReportCancelled;
pub const WerDisabledQueue = WER_SUBMIT_RESULT.DisabledQueue;
pub const WerReportAsync = WER_SUBMIT_RESULT.ReportAsync;
pub const WerCustomAction = WER_SUBMIT_RESULT.CustomAction;
pub const WerThrottled = WER_SUBMIT_RESULT.Throttled;
pub const WerReportUploadedCab = WER_SUBMIT_RESULT.ReportUploadedCab;
pub const WerStorageLocationNotFound = WER_SUBMIT_RESULT.StorageLocationNotFound;
pub const WerSubmitResultMax = WER_SUBMIT_RESULT.SubmitResultMax;
pub const WER_REPORT_TYPE = enum(i32) {
NonCritical = 0,
Critical = 1,
ApplicationCrash = 2,
ApplicationHang = 3,
Kernel = 4,
Invalid = 5,
};
pub const WerReportNonCritical = WER_REPORT_TYPE.NonCritical;
pub const WerReportCritical = WER_REPORT_TYPE.Critical;
pub const WerReportApplicationCrash = WER_REPORT_TYPE.ApplicationCrash;
pub const WerReportApplicationHang = WER_REPORT_TYPE.ApplicationHang;
pub const WerReportKernel = WER_REPORT_TYPE.Kernel;
pub const WerReportInvalid = WER_REPORT_TYPE.Invalid;
pub const WER_REPORT_INFORMATION = extern struct {
dwSize: u32,
hProcess: ?HANDLE,
wzConsentKey: [64]u16,
wzFriendlyEventName: [128]u16,
wzApplicationName: [128]u16,
wzApplicationPath: [260]u16,
wzDescription: [512]u16,
hwndParent: ?HWND,
};
pub const WER_REPORT_INFORMATION_V3 = extern struct {
dwSize: u32,
hProcess: ?HANDLE,
wzConsentKey: [64]u16,
wzFriendlyEventName: [128]u16,
wzApplicationName: [128]u16,
wzApplicationPath: [260]u16,
wzDescription: [512]u16,
hwndParent: ?HWND,
wzNamespacePartner: [64]u16,
wzNamespaceGroup: [64]u16,
};
pub const WER_DUMP_CUSTOM_OPTIONS = extern struct {
dwSize: u32,
dwMask: u32,
dwDumpFlags: u32,
bOnlyThisThread: BOOL,
dwExceptionThreadFlags: u32,
dwOtherThreadFlags: u32,
dwExceptionThreadExFlags: u32,
dwOtherThreadExFlags: u32,
dwPreferredModuleFlags: u32,
dwOtherModuleFlags: u32,
wzPreferredModuleList: [256]u16,
};
pub const WER_DUMP_CUSTOM_OPTIONS_V2 = extern struct {
dwSize: u32,
dwMask: u32,
dwDumpFlags: u32,
bOnlyThisThread: BOOL,
dwExceptionThreadFlags: u32,
dwOtherThreadFlags: u32,
dwExceptionThreadExFlags: u32,
dwOtherThreadExFlags: u32,
dwPreferredModuleFlags: u32,
dwOtherModuleFlags: u32,
wzPreferredModuleList: [256]u16,
dwPreferredModuleResetFlags: u32,
dwOtherModuleResetFlags: u32,
};
pub const WER_REPORT_INFORMATION_V4 = extern struct {
dwSize: u32,
hProcess: ?HANDLE,
wzConsentKey: [64]u16,
wzFriendlyEventName: [128]u16,
wzApplicationName: [128]u16,
wzApplicationPath: [260]u16,
wzDescription: [512]u16,
hwndParent: ?HWND,
wzNamespacePartner: [64]u16,
wzNamespaceGroup: [64]u16,
rgbApplicationIdentity: [16]u8,
hSnapshot: ?HANDLE,
hDeleteFilesImpersonationToken: ?HANDLE,
};
pub const WER_REPORT_INFORMATION_V5 = extern struct {
dwSize: u32,
hProcess: ?HANDLE,
wzConsentKey: [64]u16,
wzFriendlyEventName: [128]u16,
wzApplicationName: [128]u16,
wzApplicationPath: [260]u16,
wzDescription: [512]u16,
hwndParent: ?HWND,
wzNamespacePartner: [64]u16,
wzNamespaceGroup: [64]u16,
rgbApplicationIdentity: [16]u8,
hSnapshot: ?HANDLE,
hDeleteFilesImpersonationToken: ?HANDLE,
submitResultMax: WER_SUBMIT_RESULT,
};
pub const WER_DUMP_CUSTOM_OPTIONS_V3 = extern struct {
dwSize: u32,
dwMask: u32,
dwDumpFlags: u32,
bOnlyThisThread: BOOL,
dwExceptionThreadFlags: u32,
dwOtherThreadFlags: u32,
dwExceptionThreadExFlags: u32,
dwOtherThreadExFlags: u32,
dwPreferredModuleFlags: u32,
dwOtherModuleFlags: u32,
wzPreferredModuleList: [256]u16,
dwPreferredModuleResetFlags: u32,
dwOtherModuleResetFlags: u32,
pvDumpKey: ?*anyopaque,
hSnapshot: ?HANDLE,
dwThreadID: u32,
};
pub const WER_EXCEPTION_INFORMATION = extern struct {
pExceptionPointers: ?*EXCEPTION_POINTERS,
bClientPointers: BOOL,
};
pub const WER_CONSENT = enum(i32) {
NotAsked = 1,
Approved = 2,
Denied = 3,
AlwaysPrompt = 4,
Max = 5,
};
pub const WerConsentNotAsked = WER_CONSENT.NotAsked;
pub const WerConsentApproved = WER_CONSENT.Approved;
pub const WerConsentDenied = WER_CONSENT.Denied;
pub const WerConsentAlwaysPrompt = WER_CONSENT.AlwaysPrompt;
pub const WerConsentMax = WER_CONSENT.Max;
pub const WER_DUMP_TYPE = enum(i32) {
None = 0,
MicroDump = 1,
MiniDump = 2,
HeapDump = 3,
TriageDump = 4,
Max = 5,
};
pub const WerDumpTypeNone = WER_DUMP_TYPE.None;
pub const WerDumpTypeMicroDump = WER_DUMP_TYPE.MicroDump;
pub const WerDumpTypeMiniDump = WER_DUMP_TYPE.MiniDump;
pub const WerDumpTypeHeapDump = WER_DUMP_TYPE.HeapDump;
pub const WerDumpTypeTriageDump = WER_DUMP_TYPE.TriageDump;
pub const WerDumpTypeMax = WER_DUMP_TYPE.Max;
pub const WER_RUNTIME_EXCEPTION_INFORMATION = extern struct {
dwSize: u32,
hProcess: ?HANDLE,
hThread: ?HANDLE,
exceptionRecord: EXCEPTION_RECORD,
context: CONTEXT,
pwszReportId: ?[*:0]const u16,
bIsFatal: BOOL,
dwReserved: u32,
};
pub const PFN_WER_RUNTIME_EXCEPTION_EVENT = switch (@import("builtin").zig_backend) {
.stage1 => fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
pbOwnershipClaimed: ?*BOOL,
pwszEventName: [*:0]u16,
pchSize: ?*u32,
pdwSignatureCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
pbOwnershipClaimed: ?*BOOL,
pwszEventName: [*:0]u16,
pchSize: ?*u32,
pdwSignatureCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
pub const PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE = switch (@import("builtin").zig_backend) {
.stage1 => fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
dwIndex: u32,
pwszName: [*:0]u16,
pchName: ?*u32,
pwszValue: [*:0]u16,
pchValue: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
dwIndex: u32,
pwszName: [*:0]u16,
pchName: ?*u32,
pwszValue: [*:0]u16,
pchValue: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
pub const PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH = switch (@import("builtin").zig_backend) {
.stage1 => fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
pbIsCustomDebugger: ?*BOOL,
pwszDebuggerLaunch: [*:0]u16,
pchDebuggerLaunch: ?*u32,
pbIsDebuggerAutolaunch: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
pContext: ?*anyopaque,
pExceptionInformation: ?*const WER_RUNTIME_EXCEPTION_INFORMATION,
pbIsCustomDebugger: ?*BOOL,
pwszDebuggerLaunch: [*:0]u16,
pchDebuggerLaunch: ?*u32,
pbIsDebuggerAutolaunch: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
} ;
pub const REPORT_STORE_TYPES = enum(i32) {
USER_ARCHIVE = 0,
USER_QUEUE = 1,
MACHINE_ARCHIVE = 2,
MACHINE_QUEUE = 3,
INVALID = 4,
};
pub const E_STORE_USER_ARCHIVE = REPORT_STORE_TYPES.USER_ARCHIVE;
pub const E_STORE_USER_QUEUE = REPORT_STORE_TYPES.USER_QUEUE;
pub const E_STORE_MACHINE_ARCHIVE = REPORT_STORE_TYPES.MACHINE_ARCHIVE;
pub const E_STORE_MACHINE_QUEUE = REPORT_STORE_TYPES.MACHINE_QUEUE;
pub const E_STORE_INVALID = REPORT_STORE_TYPES.INVALID;
pub const WER_REPORT_PARAMETER = extern struct {
Name: [129]u16,
Value: [260]u16,
};
pub const WER_REPORT_SIGNATURE = extern struct {
EventName: [65]u16,
Parameters: [10]WER_REPORT_PARAMETER,
};
pub const WER_REPORT_METADATA_V2 = extern struct {
Signature: WER_REPORT_SIGNATURE,
BucketId: Guid,
ReportId: Guid,
CreationTime: FILETIME,
SizeInBytes: u64,
CabId: [260]u16,
ReportStatus: u32,
ReportIntegratorId: Guid,
NumberOfFiles: u32,
SizeOfFileNames: u32,
FileNames: ?PWSTR,
};
pub const WER_REPORT_METADATA_V3 = extern struct {
Signature: WER_REPORT_SIGNATURE,
BucketId: Guid,
ReportId: Guid,
CreationTime: FILETIME,
SizeInBytes: u64,
CabId: [260]u16,
ReportStatus: u32,
ReportIntegratorId: Guid,
NumberOfFiles: u32,
SizeOfFileNames: u32,
FileNames: ?PWSTR,
FriendlyEventName: [128]u16,
ApplicationName: [128]u16,
ApplicationPath: [260]u16,
Description: [512]u16,
BucketIdString: [260]u16,
LegacyBucketId: u64,
};
pub const WER_REPORT_METADATA_V1 = extern struct {
Signature: WER_REPORT_SIGNATURE,
BucketId: Guid,
ReportId: Guid,
CreationTime: FILETIME,
SizeInBytes: u64,
};
pub const EFaultRepRetVal = enum(i32) {
Ok = 0,
OkManifest = 1,
OkQueued = 2,
Err = 3,
ErrNoDW = 4,
ErrTimeout = 5,
LaunchDebugger = 6,
OkHeadless = 7,
ErrAnotherInstance = 8,
ErrNoMemory = 9,
ErrDoubleFault = 10,
};
pub const frrvOk = EFaultRepRetVal.Ok;
pub const frrvOkManifest = EFaultRepRetVal.OkManifest;
pub const frrvOkQueued = EFaultRepRetVal.OkQueued;
pub const frrvErr = EFaultRepRetVal.Err;
pub const frrvErrNoDW = EFaultRepRetVal.ErrNoDW;
pub const frrvErrTimeout = EFaultRepRetVal.ErrTimeout;
pub const frrvLaunchDebugger = EFaultRepRetVal.LaunchDebugger;
pub const frrvOkHeadless = EFaultRepRetVal.OkHeadless;
pub const frrvErrAnotherInstance = EFaultRepRetVal.ErrAnotherInstance;
pub const frrvErrNoMemory = EFaultRepRetVal.ErrNoMemory;
pub const frrvErrDoubleFault = EFaultRepRetVal.ErrDoubleFault;
pub const pfn_REPORTFAULT = switch (@import("builtin").zig_backend) {
.stage1 => fn(
param0: ?*EXCEPTION_POINTERS,
param1: u32,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
else => *const fn(
param0: ?*EXCEPTION_POINTERS,
param1: u32,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
} ;
pub const pfn_ADDEREXCLUDEDAPPLICATIONA = switch (@import("builtin").zig_backend) {
.stage1 => fn(
param0: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
else => *const fn(
param0: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
} ;
pub const pfn_ADDEREXCLUDEDAPPLICATIONW = switch (@import("builtin").zig_backend) {
.stage1 => fn(
param0: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
else => *const fn(
param0: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal,
} ;
//--------------------------------------------------------------------------------
// Section: Functions (41)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportCreate(
pwzEventType: ?[*:0]const u16,
repType: WER_REPORT_TYPE,
pReportInformation: ?*WER_REPORT_INFORMATION,
phReportHandle: ?*HREPORT,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportSetParameter(
hReportHandle: HREPORT,
dwparamID: u32,
pwzName: ?[*:0]const u16,
pwzValue: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportAddFile(
hReportHandle: HREPORT,
pwzPath: ?[*:0]const u16,
repFileType: WER_FILE_TYPE,
dwFileFlags: WER_FILE,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportSetUIOption(
hReportHandle: HREPORT,
repUITypeID: WER_REPORT_UI,
pwzValue: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportSubmit(
hReportHandle: HREPORT,
consent: WER_CONSENT,
dwFlags: WER_SUBMIT_FLAGS,
pSubmitResult: ?*WER_SUBMIT_RESULT,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportAddDump(
hReportHandle: HREPORT,
hProcess: ?HANDLE,
hThread: ?HANDLE,
dumpType: WER_DUMP_TYPE,
pExceptionParam: ?*WER_EXCEPTION_INFORMATION,
pDumpCustomOptions: ?*WER_DUMP_CUSTOM_OPTIONS,
dwFlags: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerReportCloseHandle(
hReportHandle: HREPORT,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerRegisterFile(
pwzFile: ?[*:0]const u16,
regFileType: WER_REGISTER_FILE_TYPE,
dwFlags: WER_FILE,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerUnregisterFile(
pwzFilePath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerRegisterMemoryBlock(
pvAddress: ?*anyopaque,
dwSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerUnregisterMemoryBlock(
pvAddress: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerRegisterExcludedMemoryBlock(
address: ?*const anyopaque,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerUnregisterExcludedMemoryBlock(
address: ?*const anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerRegisterCustomMetadata(
key: ?[*:0]const u16,
value: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerUnregisterCustomMetadata(
key: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerRegisterAdditionalProcess(
processId: u32,
captureExtraInfoForThreadId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "kernel32" fn WerUnregisterAdditionalProcess(
processId: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.16299'
pub extern "kernel32" fn WerRegisterAppLocalDump(
localAppDataRelativePath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.16299'
pub extern "kernel32" fn WerUnregisterAppLocalDump(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerSetFlags(
dwFlags: WER_FAULT_REPORTING,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "kernel32" fn WerGetFlags(
hProcess: ?HANDLE,
pdwFlags: ?*WER_FAULT_REPORTING,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerAddExcludedApplication(
pwzExeName: ?[*:0]const u16,
bAllUsers: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "wer" fn WerRemoveExcludedApplication(
pwzExeName: ?[*:0]const u16,
bAllUsers: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "kernel32" fn WerRegisterRuntimeExceptionModule(
pwszOutOfProcessCallbackDll: ?[*:0]const u16,
pContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows6.1'
pub extern "kernel32" fn WerUnregisterRuntimeExceptionModule(
pwszOutOfProcessCallbackDll: ?[*:0]const u16,
pContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerStoreOpen(
repStoreType: REPORT_STORE_TYPES,
phReportStore: ?*HREPORTSTORE,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerStoreClose(
hReportStore: HREPORTSTORE,
) callconv(@import("std").os.windows.WINAPI) void;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerStoreGetFirstReportKey(
hReportStore: HREPORTSTORE,
ppszReportKey: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerStoreGetNextReportKey(
hReportStore: HREPORTSTORE,
ppszReportKey: ?*?PWSTR,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerStoreQueryReportMetadataV2(
hReportStore: HREPORTSTORE,
pszReportKey: ?[*:0]const u16,
pReportMetadata: ?*WER_REPORT_METADATA_V2,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "wer" fn WerStoreQueryReportMetadataV3(
hReportStore: HREPORTSTORE,
pszReportKey: ?[*:0]const u16,
pReportMetadata: ?*WER_REPORT_METADATA_V3,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows10.0.15063'
pub extern "wer" fn WerFreeString(
pwszStr: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) void;
pub extern "wer" fn WerStorePurge(
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "wer" fn WerStoreGetReportCount(
hReportStore: HREPORTSTORE,
pdwReportCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "wer" fn WerStoreGetSizeOnDisk(
hReportStore: HREPORTSTORE,
pqwSizeInBytes: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "wer" fn WerStoreQueryReportMetadataV1(
hReportStore: HREPORTSTORE,
pszReportKey: ?[*:0]const u16,
pReportMetadata: ?*WER_REPORT_METADATA_V1,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
pub extern "wer" fn WerStoreUploadReport(
hReportStore: HREPORTSTORE,
pszReportKey: ?[*:0]const u16,
dwFlags: u32,
pSubmitResult: ?*WER_SUBMIT_RESULT,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "faultrep" fn ReportFault(
pep: ?*EXCEPTION_POINTERS,
dwOpt: u32,
) callconv(@import("std").os.windows.WINAPI) EFaultRepRetVal;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "faultrep" fn AddERExcludedApplicationA(
szApplication: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "faultrep" fn AddERExcludedApplicationW(
wszApplication: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;
// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "faultrep" fn WerReportHang(
hwndHungApp: ?HWND,
pwzHungApplicationName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (2)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
pub const pfn_ADDEREXCLUDEDAPPLICATION = thismodule.pfn_ADDEREXCLUDEDAPPLICATIONA;
pub const AddERExcludedApplication = thismodule.AddERExcludedApplicationA;
},
.wide => struct {
pub const pfn_ADDEREXCLUDEDAPPLICATION = thismodule.pfn_ADDEREXCLUDEDAPPLICATIONW;
pub const AddERExcludedApplication = thismodule.AddERExcludedApplicationW;
},
.unspecified => if (@import("builtin").is_test) struct {
pub const pfn_ADDEREXCLUDEDAPPLICATION = *opaque{};
pub const AddERExcludedApplication = *opaque{};
} else struct {
pub const pfn_ADDEREXCLUDEDAPPLICATION = @compileError("'pfn_ADDEREXCLUDEDAPPLICATION' requires that UNICODE be set to true or false in the root module");
pub const AddERExcludedApplication = @compileError("'AddERExcludedApplication' requires that UNICODE be set to true or false in the root module");
},
};
//--------------------------------------------------------------------------------
// Section: Imports (11)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const CONTEXT = @import("../system/diagnostics/debug.zig").CONTEXT;
const EXCEPTION_POINTERS = @import("../system/diagnostics/debug.zig").EXCEPTION_POINTERS;
const EXCEPTION_RECORD = @import("../system/diagnostics/debug.zig").EXCEPTION_RECORD;
const FILETIME = @import("../foundation.zig").FILETIME;
const HANDLE = @import("../foundation.zig").HANDLE;
const HRESULT = @import("../foundation.zig").HRESULT;
const HWND = @import("../foundation.zig").HWND;
const PSTR = @import("../foundation.zig").PSTR;
const PWSTR = @import("../foundation.zig").PWSTR;
test {
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
if (@hasDecl(@This(), "PFN_WER_RUNTIME_EXCEPTION_EVENT")) { _ = PFN_WER_RUNTIME_EXCEPTION_EVENT; }
if (@hasDecl(@This(), "PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE")) { _ = PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE; }
if (@hasDecl(@This(), "PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH")) { _ = PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH; }
if (@hasDecl(@This(), "pfn_REPORTFAULT")) { _ = pfn_REPORTFAULT; }
if (@hasDecl(@This(), "pfn_ADDEREXCLUDEDAPPLICATIONA")) { _ = pfn_ADDEREXCLUDEDAPPLICATIONA; }
if (@hasDecl(@This(), "pfn_ADDEREXCLUDEDAPPLICATIONW")) { _ = pfn_ADDEREXCLUDEDAPPLICATIONW; }
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}