[BOOTDATA] Set the 'BootExecute' SMSS value to an empty value as we do not want AutoC...
[reactos.git] / boot / environ / include / bl.h
index 40d1189..bea6856 100644 (file)
@@ -742,6 +742,15 @@ typedef BOOLEAN
     _Out_opt_ PULONG CacheAttributes
     );
 
+typedef NTSTATUS
+(*PBL_STATUS_ERROR_HANDLER) (
+    _In_ ULONG ErrorCode,
+    _In_ ULONG Parameter1,
+    _In_ ULONG_PTR Parameter2,
+    _In_ ULONG_PTR Parameter3,
+    _In_ ULONG_PTR Parameter4
+    );
+
 /* DATA STRUCTURES ***********************************************************/
 
 typedef struct _BL_LIBRARY_PARAMETERS
@@ -914,7 +923,7 @@ typedef struct _BL_HARDDISK_DEVICE
 
 typedef struct _BL_LOCAL_DEVICE
 {
-    ULONG Type;
+    BL_LOCAL_DEVICE_TYPE Type;
     union
     {
         struct
@@ -924,6 +933,8 @@ typedef struct _BL_LOCAL_DEVICE
 
         BL_HARDDISK_DEVICE HardDisk;
 
+        BL_HARDDISK_DEVICE VirtualHardDisk;
+
         struct
         {
             PHYSICAL_ADDRESS ImageBase;
@@ -1277,12 +1288,12 @@ typedef struct _BL_IMAGE_APPLICATION_ENTRY
     ULONG ImageSize;
 } BL_IMAGE_APPLICATION_ENTRY, *PBL_IMAGE_APPLICATION_ENTRY;
 
-typedef struct _BL_IMAGE_PARAMETERS
+typedef struct _BL_BUFFER_DESCRIPTOR
 {
     PVOID Buffer;
     ULONG ActualSize;
     ULONG BufferSize;
-} BL_IMAGE_PARAMETERS, *PBL_IMAGE_PARAMETERS;
+} BL_BUFFER_DESCRIPTOR, *PBL_BUFFER_DESCRIPTOR;
 
 typedef struct _BL_DEFERRED_FONT_FILE
 {
@@ -1374,6 +1385,14 @@ MmMdInitializeListHead (
     List->Type = 0;
 }
 
+FORCEINLINE
+PVOID
+PhysicalAddressToPtr (
+    _In_ PHYSICAL_ADDRESS PhysicalAddress)
+{
+    return (PVOID)(ULONG_PTR)PhysicalAddress.QuadPart;
+}
+
 /* INITIALIZATION ROUTINES ***************************************************/
 
 NTSTATUS
@@ -1999,7 +2018,8 @@ BlCopyBootOptions (
 NTSTATUS
 BlAppendBootOptionBoolean (
     _In_ PBL_LOADED_APPLICATION_ENTRY AppEntry,
-    _In_ ULONG OptionId
+    _In_ ULONG OptionId,
+    _In_ BOOLEAN Value
     );
 
 NTSTATUS
@@ -2012,6 +2032,7 @@ BlAppendBootOptionInteger (
 NTSTATUS
 BlAppendBootOptionString (
     _In_ PBL_LOADED_APPLICATION_ENTRY AppEntry,
+    _In_ ULONG OptionId,
     _In_ PWCHAR OptionString
     );
 
@@ -2287,7 +2308,7 @@ BlMmRemoveBadMemory (
 NTSTATUS
 BlMmGetMemoryMap (
     _In_ PLIST_ENTRY MemoryMap,
-    _In_ PBL_IMAGE_PARAMETERS MemoryParameters,
+    _In_ PBL_BUFFER_DESCRIPTOR MemoryParameters,
     _In_ ULONG WhichTypes,
     _In_ ULONG Flags
     );
@@ -2356,7 +2377,7 @@ BlpMmCreateBlockAllocator (
 
 PVOID
 BlMmAllocateHeap (
-    _In_ ULONG Size
+    _In_ SIZE_T Size
     );
 
 NTSTATUS
@@ -2421,6 +2442,12 @@ BlDeviceClose (
     _In_ ULONG DeviceId
     );
 
+BOOLEAN
+BlDeviceIsVirtualPartitionDevice (
+    _In_ PBL_DEVICE_DESCRIPTOR InputDevice,
+    _Outptr_ PBL_DEVICE_DESCRIPTOR* VirtualDevice
+    );
+
 NTSTATUS
 BlpDeviceOpen (
     _In_ PBL_DEVICE_DESCRIPTOR Device,
@@ -2831,5 +2858,6 @@ extern PBL_MM_RELOCATE_SELF_MAP BlMmRelocateSelfMap;
 extern PBL_MM_FLUSH_TLB BlMmFlushTlb;
 extern PBL_MM_MOVE_VIRTUAL_ADDRESS_RANGE BlMmMoveVirtualAddressRange;
 extern PBL_MM_ZERO_VIRTUAL_ADDRESS_RANGE BlMmZeroVirtualAddressRange;
+extern PBL_STATUS_ERROR_HANDLER BlpStatusErrorHandler;
 
 #endif