Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
2.4 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. vibugcheck.h
  5. Abstract:
  6. This header defines the internal prototypes and constants required for
  7. verifier bugchecks. The file is meant to be included by vfbugcheck.c only.
  8. Author:
  9. Adrian J. Oney (adriao) 20-Apr-1998
  10. Revision History:
  11. AdriaO 02/21/2000 - Moved from ntos\io\ioassert.h
  12. --*/
  13. //
  14. // This structure and the table using it define the types and ordering of
  15. // IopDriverCorrectnessCheck (see this function for a more detailed explanation)
  16. //
  17. typedef struct _DCPARAM_TYPE_ENTRY {
  18. ULONG DcParamMask;
  19. PSTR DcParamName;
  20. } DCPARAM_TYPE_ENTRY, *PDCPARAM_TYPE_ENTRY;
  21. typedef struct _DC_CHECK_DATA {
  22. PULONG Control;
  23. ULONG AssertionControl;
  24. ULONG BugCheckMajor;
  25. VFMESSAGE_ERRORID MessageID;
  26. PVOID CulpritAddress;
  27. ULONG_PTR OffsetIntoImage;
  28. PUNICODE_STRING DriverName;
  29. PCVFMESSAGE_CLASS AssertionClass;
  30. PCSTR MessageTextTemplate;
  31. PVOID *DcParamArray;
  32. PCSTR ClassText;
  33. PSTR AssertionText;
  34. BOOLEAN InVerifierList;
  35. } DC_CHECK_DATA, *PDC_CHECK_DATA;
  36. VOID
  37. ViBucheckProcessParams(
  38. IN PVFMESSAGE_TEMPLATE_TABLE MessageTable OPTIONAL,
  39. IN VFMESSAGE_ERRORID MessageID,
  40. IN PCSTR MessageParamFormat,
  41. IN va_list * MessageParameters,
  42. IN PVOID * DcParamArray,
  43. OUT PDC_CHECK_DATA DcCheckData
  44. );
  45. NTSTATUS
  46. FASTCALL
  47. ViBugcheckProcessMessageText(
  48. IN ULONG MaxOutputBufferSize,
  49. OUT PSTR OutputBuffer,
  50. IN OUT PDC_CHECK_DATA DcCheckData
  51. );
  52. BOOLEAN
  53. FASTCALL
  54. ViBugcheckApplyControl(
  55. IN OUT PDC_CHECK_DATA DcCheckData
  56. );
  57. VOID
  58. FASTCALL
  59. ViBugcheckHalt(
  60. IN PDC_CHECK_DATA DcCheckData
  61. );
  62. VOID
  63. FASTCALL
  64. ViBugcheckPrintBuffer(
  65. IN PDC_CHECK_DATA DcCheckData
  66. );
  67. VOID
  68. FASTCALL
  69. ViBugcheckPrintParamData(
  70. IN PDC_CHECK_DATA DcCheckData
  71. );
  72. VOID
  73. FASTCALL
  74. ViBugcheckPrintUrl(
  75. IN PDC_CHECK_DATA DcCheckData
  76. );
  77. VOID
  78. FASTCALL
  79. ViBugcheckPrompt(
  80. IN PDC_CHECK_DATA DcCheckData,
  81. OUT PBOOLEAN ExitAssertion
  82. );
  83. PCHAR
  84. KeBugCheckUnicodeToAnsi(
  85. IN PUNICODE_STRING UnicodeString,
  86. OUT PCHAR AnsiBuffer,
  87. IN ULONG MaxAnsiLength
  88. );