windows-nt/Source/XPSP1/NT/base/ntos/verifier/vibugcheck.h

116 lines
2.4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
vibugcheck.h
Abstract:
This header defines the internal prototypes and constants required for
verifier bugchecks. The file is meant to be included by vfbugcheck.c only.
Author:
Adrian J. Oney (adriao) 20-Apr-1998
Revision History:
AdriaO 02/21/2000 - Moved from ntos\io\ioassert.h
--*/
//
// This structure and the table using it define the types and ordering of
// IopDriverCorrectnessCheck (see this function for a more detailed explanation)
//
typedef struct _DCPARAM_TYPE_ENTRY {
ULONG DcParamMask;
PSTR DcParamName;
} DCPARAM_TYPE_ENTRY, *PDCPARAM_TYPE_ENTRY;
typedef struct _DC_CHECK_DATA {
PULONG Control;
ULONG AssertionControl;
ULONG BugCheckMajor;
VFMESSAGE_ERRORID MessageID;
PVOID CulpritAddress;
ULONG_PTR OffsetIntoImage;
PUNICODE_STRING DriverName;
PCVFMESSAGE_CLASS AssertionClass;
PCSTR MessageTextTemplate;
PVOID *DcParamArray;
PCSTR ClassText;
PSTR AssertionText;
BOOLEAN InVerifierList;
} DC_CHECK_DATA, *PDC_CHECK_DATA;
VOID
ViBucheckProcessParams(
IN PVFMESSAGE_TEMPLATE_TABLE MessageTable OPTIONAL,
IN VFMESSAGE_ERRORID MessageID,
IN PCSTR MessageParamFormat,
IN va_list * MessageParameters,
IN PVOID * DcParamArray,
OUT PDC_CHECK_DATA DcCheckData
);
NTSTATUS
FASTCALL
ViBugcheckProcessMessageText(
IN ULONG MaxOutputBufferSize,
OUT PSTR OutputBuffer,
IN OUT PDC_CHECK_DATA DcCheckData
);
BOOLEAN
FASTCALL
ViBugcheckApplyControl(
IN OUT PDC_CHECK_DATA DcCheckData
);
VOID
FASTCALL
ViBugcheckHalt(
IN PDC_CHECK_DATA DcCheckData
);
VOID
FASTCALL
ViBugcheckPrintBuffer(
IN PDC_CHECK_DATA DcCheckData
);
VOID
FASTCALL
ViBugcheckPrintParamData(
IN PDC_CHECK_DATA DcCheckData
);
VOID
FASTCALL
ViBugcheckPrintUrl(
IN PDC_CHECK_DATA DcCheckData
);
VOID
FASTCALL
ViBugcheckPrompt(
IN PDC_CHECK_DATA DcCheckData,
OUT PBOOLEAN ExitAssertion
);
PCHAR
KeBugCheckUnicodeToAnsi(
IN PUNICODE_STRING UnicodeString,
OUT PCHAR AnsiBuffer,
IN ULONG MaxAnsiLength
);