Leaked source code of windows server 2003
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.

86 lines
2.3 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. bootstatus.h
  5. Abstract:
  6. Data structure definition for the bootstat.dat data file. This is
  7. published in order to make it possible to build test tools to check
  8. and manipulate the file. The data structure definition may change
  9. however.
  10. --*/
  11. #pragma once
  12. #if BSD_UNICODE
  13. #define BSDMKUNICODE(x) L##x
  14. #else
  15. #define BSDMKUNICODE(x) x
  16. #endif
  17. typedef struct {
  18. //
  19. // The version number of this file. This is equal to the size of the
  20. // structure. Since this structure is used by the loader it's required
  21. // that newer versions of the code be able to handle older versions of the
  22. // data file so fields can only be added to the end of the structure.
  23. //
  24. ULONG Version;
  25. //
  26. // The product type of this installation (personal, professional, etc...).
  27. // This can be used to remove options from the advanced boot menu in the
  28. // future.
  29. //
  30. NT_PRODUCT_TYPE ProductType;
  31. //
  32. // Set to TRUE if we should automatically do an "advanced boot" after a
  33. // crash.
  34. //
  35. BOOLEAN AutoAdvancedBoot;
  36. //
  37. // The timeout value that the advanced boot menu should use when it's
  38. // automatically invoked due to a system crash in seconds.
  39. //
  40. UCHAR AdvancedBootMenuTimeout;
  41. //
  42. // Set to FALSE by the loader before booting the OS. When the current
  43. // control set in the registry is written out the system will set this
  44. // flag to TRUE (actually !FALSE, but it's basically the same) to indicate
  45. // that auto last-known-good in the event of a crash would be useless
  46. // (since the LKG has been overwritten with the current config).
  47. //
  48. BOOLEAN LastBootSucceeded;
  49. //
  50. // Set to FALSE by the loader before booting the OS. When the system is
  51. // shutdown successfully this bit will be set to TRUE by the OS which
  52. // tells the loader that there wasn't a bugcheck.
  53. //
  54. BOOLEAN LastBootShutdown;
  55. } BSD_BOOT_STATUS_DATA, *PBSD_BOOT_STATUS_DATA;
  56. typedef enum {
  57. BsdLastBootUnknown,
  58. BsdLastBootGood,
  59. BsdLastBootFailed,
  60. BsdLastBootNotShutdown
  61. } BSD_LAST_BOOT_STATUS, *PBSD_LAST_BOOT_STATUS;
  62. #define BSD_FILE_NAME BSDMKUNICODE("\\bootstat.dat")