[NFS]
[reactos.git] / reactos / boot / environ / include / bcd.h
index 9d3d7fa..cee8a0c 100644 (file)
 #define BCD_TYPE_BOOLEAN        0x06
 #define BCD_TYPE_INTEGER_LIST   0x07
 
+#define BCD_IMAGE_TYPE_FIRMWARE     0x01
+#define BCD_IMAGE_TYPE_BOOT_APP     0x02
+#define BCD_IMAGE_TYPE_NTLDR        0x03
+#define BCD_IMAGE_TYPE_REAL_MODE    0x04
+
+#define BCD_APPLICATION_TYPE_FWBOOTMGR  0x01
+#define BCD_APPLICATION_TYPE_BOOTMGR    0x02
+#define BCD_APPLICATION_TYPE_OSLOADER   0x03
+#define BCD_APPLICATION_TYPE_RESUME     0x04
+#define BCD_APPLICATION_TYPE_MEMDIAG    0x05
+#define BCD_APPLICATION_TYPE_NTLDR      0x06
+#define BCD_APPLICATION_TYPE_SETUPLDR   0x07
+#define BCD_APPLICATION_TYPE_BOOTSECTOR 0x08
+#define BCD_APPLICATION_TYPE_STARTUPCOM 0x09
+
+#define BCD_OBJECT_TYPE_APPLICATION     0x01
+#define BCD_OBJECT_TYPE_INHERIT         0x02
+#define BCD_OBJECT_TYPE_DEVICE          0x03
+
 typedef enum BcdLibraryElementTypes
 {
     BcdLibraryDevice_ApplicationDevice = 0x11000001,
@@ -73,6 +92,9 @@ typedef enum BcdLibraryElementTypes
     BcdLibraryInteger_FveBandId = 0x1500004C,
     BcdLibraryBoolean_ConsoleExtendedInput = 0x16000050,
     BcdLibraryInteger_GraphicsResolution = 0x15000052,
+    BcdLibraryInteger_DisplayMessage = 0x15000065, /* Undocumented */
+    BcdLibraryInteger_DisplayMessageOverride = 0x15000066, /* Undocumented */
+    BcdLibraryInteger_UndocumentedMagic = 0x15000075, /* Undocumented magic */
     BcdLibraryBoolean_RestartOnFailure = 0x16000053,
     BcdLibraryBoolean_GraphicsForceHighestMode = 0x16000054,
     BcdLibraryBoolean_IsolatedExecutionContext = 0x16000060,
@@ -132,6 +154,7 @@ typedef enum BcdOSLoaderElementTypes
     BcdOSLoaderInteger_DriverLoadFailurePolicy = 0x250000c1,
     BcdOSLoaderInteger_BootMenuPolicy = 0x250000C2,
     BcdOSLoaderBoolean_AdvancedOptionsOneTime = 0x260000C3,
+    BcdOSLoaderBoolean_OptionsEditOneTime = 0x260000C4, /* Undocumented */
     BcdOSLoaderInteger_BootStatusPolicy = 0x250000E0,
     BcdOSLoaderBoolean_DisableElamDrivers = 0x260000E1,
     BcdOSLoaderInteger_HypervisorLaunchType = 0x250000F0,
@@ -172,13 +195,29 @@ typedef enum BcdBootMgrElementTypes
     BcdBootMgrBoolean_PersistBootSequence = 0x26000031
 } BcdBootMgrElementTypes;
 
+typedef enum _BcdResumeElementTypes {
+    Reserved1 = 0x21000001,
+    Reserved2 = 0x22000002,
+    BcdResumeBoolean_UseCustomSettings = 0x26000003,
+    BcdResumeDevice_AssociatedOsDevice = 0x21000005,
+    BcdResumeBoolean_DebugOptionEnabled = 0x26000006,
+    BcdResumeInteger_BootMenuPolicy = 0x25000008
+} BcdResumeElementTypes;
+
+/* Undocumented */
+typedef enum BcdStartupElementTypes
+{
+    BcdStartupBoolean_PxeSoftReboot = 0x26000001,
+    BcdStartupString_PxeApplicationName = 0x22000002,
+} BcdStartupElementTypes;
+
 /* DATA STRUCTURES ***********************************************************/
 
 typedef struct
 {
     union
     {
-        ULONG  PackedValue;
+        ULONG PackedValue;
         struct
         {
             ULONG SubType : 24;
@@ -188,6 +227,36 @@ typedef struct
     };
 } BcdElementType;
 
+typedef struct
+{
+    union
+    {
+        ULONG PackedValue;
+        union
+        {
+            struct
+            {
+                ULONG ApplicationCode : 20;
+                ULONG ImageCode : 4;
+                ULONG Reserved : 4;
+                ULONG ObjectCode : 4;
+            } Application;
+            struct
+            {
+                ULONG Value : 20;
+                ULONG ClassCode : 4;
+                ULONG Reserved : 4;
+                ULONG ObjectCode : 4;
+            } Inherit;
+            struct
+            {
+                ULONG Reserved:28;
+                ULONG ObjectCode : 4;
+            } Device;
+        };
+    };
+} BcdObjectType;
+
 typedef struct _BCD_ELEMENT_HEADER
 {
     ULONG Version;
@@ -215,6 +284,12 @@ typedef struct _BCD_DEVICE_OPTION
     BL_DEVICE_DESCRIPTOR DeviceDescriptor;
 } BCD_DEVICE_OPTION, *PBCD_DEVICE_OPTION;
 
+typedef struct _BCD_OBJECT_DESCRIPTION
+{
+    ULONG Valid;
+    ULONG Type;
+} BCD_OBJECT_DESCRIPTION, *PBCD_OBJECT_DESCRIPTION;
+
 /* FUNCTIONS ******************************************************************/
 
 NTSTATUS
@@ -260,4 +335,10 @@ BcdEnumerateAndUnpackElements (
     _Out_ PULONG ElementCount
     );
 
+NTSTATUS
+BiGetObjectDescription (
+    _In_ HANDLE ObjectHandle,
+    _Out_ PBCD_OBJECT_DESCRIPTION Description
+    );
+
 #endif