11 #define MM_READONLY 1 // PAGE_READONLY 12 #define MM_READWRITE 4 // PAGE_WRITECOPY 15 #define TAG_OSTR 'RTSO' 78 #define INBV_ROTBAR_IMPLEMENTED 95 #ifdef INBV_ROTBAR_IMPLEMENTED 99 #define ROT_BAR_DEFAULT_MODE RB_PROGRESS_BAR 128 #ifdef INBV_HEADLESS_COLORS 131 static const UCHAR CGA_TO_ANSI_COLOR_TABLE[16] =
152 #define CGA_TO_ANSI_COLOR(CgaColor) \ 153 CGA_TO_ANSI_COLOR_TABLE[CgaColor & 0x0F] 176 #define PALETTE_FADE_STEPS 12 177 #define PALETTE_FADE_TIME (15 * 1000) 305 switch (HorizontalAlignment)
308 X = MarginLeft - MarginRight;
325 switch (VerticalAlignment)
328 Y = MarginTop - MarginBottom;
366 ListHead = &LoaderBlock->LoadOrderListHead;
367 NextEntry = ListHead->
Flink;
368 while (NextEntry != ListHead)
385 if (NextEntry != ListHead)
388 ResourceInfo.
Type = 2;
389 ResourceInfo.
Name = ResourceId;
403 if ((
Data) && (ResourceId < 3))
433 CommandLine = (LoaderBlock->LoadOptions ?
_strupr(LoaderBlock->LoadOptions) :
NULL);
434 ResetMode = (CommandLine ==
NULL) || (
strstr(CommandLine,
"BOOTLOGO") ==
NULL);
697 #ifdef INBV_HEADLESS_COLORS 706 sizeof(HeadlessSetColor),
738 #ifdef INBV_HEADLESS_COLORS 747 sizeof(HeadlessSetColor),
764 ULONG FillCount, BoundedProgress;
980 #ifdef INBV_ROTBAR_IMPLEMENTED 1031 if (
Index < Total - 1)
1039 else if (
Index >= Total - 3)
1090 #ifdef INBV_ROTBAR_IMPLEMENTED 1102 #ifdef INBV_ROTBAR_IMPLEMENTED 1189 #ifdef INBV_ROTBAR_IMPLEMENTED 1213 #ifdef INBV_ROTBAR_IMPLEMENTED 1238 #ifdef INBV_ROTBAR_IMPLEMENTED 1289 #ifdef INBV_ROTBAR_IMPLEMENTED 1330 #ifdef INBV_ROTBAR_IMPLEMENTED 1354 #ifdef INBV_ROTBAR_IMPLEMENTED 1405 #ifdef INBV_ROTBAR_IMPLEMENTED
static __inline NTSTATUS ProbeAndCaptureUnicodeString(OUT PUNICODE_STRING Dest, IN KPROCESSOR_MODE CurrentMode, IN const UNICODE_STRING *UnsafeSrc)
VOID NTAPI InbvScreenToBufferBlt(OUT PUCHAR Buffer, IN ULONG X, IN ULONG Y, IN ULONG Width, IN ULONG Height, IN ULONG Delta)
VOID NTAPI InbvRotBarInit(VOID)
#define KeGetCurrentIrql()
VOID NTAPI InbvSetProgressBarSubset(IN ULONG Floor, IN ULONG Ceiling)
*BytesInOemString PCHAR OemString
static ULONG InbvTerminalTextColor
VOID NTAPI InbvNotifyDisplayOwnershipLost(IN INBV_RESET_DISPLAY_PARAMETERS Callback)
static BT_PROGRESS_INDICATOR InbvProgressIndicator
#define IDB_SERVER_FOOTER
#define STATUS_PRIVILEGE_NOT_HELD
#define KeRaiseIrql(irql, oldIrql)
INBV_DISPLAY_STATE NTAPI InbvGetDisplayState(VOID)
struct tagBITMAPINFOHEADER * PBITMAPINFOHEADER
VOID NTAPI InbvIndicateProgress(VOID)
#define KeLowerIrql(oldIrql)
static VOID BootLogoFadeIn(VOID)
struct _BT_PROGRESS_INDICATOR * PBT_PROGRESS_INDICATOR
ACPI_SIZE strlen(const char *String)
static ULONG ProgressBarHeight
VOID NTAPI DisplayBootBitmap(IN BOOLEAN TextMode)
char * strstr(char *String1, char *String2)
BOOLEAN NTAPI InbvDisplayString(IN PCHAR String)
static INBV_RESET_DISPLAY_PARAMETERS InbvResetDisplayParameters
VOID NTAPI InbvEnableBootDriver(IN BOOLEAN Enable)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
VOID NTAPI VidDisplayString(_In_z_ PUCHAR String)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
#define VID_SKU_SAVE_AREA_LEFT
#define VID_FOOTER_BG_TOP
VOID NTAPI InbvBufferToScreenBlt(IN PUCHAR Buffer, IN ULONG X, IN ULONG Y, IN ULONG Width, IN ULONG Height, IN ULONG Delta)
#define VID_SCROLL_AREA_BOTTOM
#define PALETTE_FADE_STEPS
ULONG_PTR KiBugCheckData[5]
IN PVOID IN PVOID IN USHORT IN USHORT Size
VOID NTAPI InbvSolidColorFill(IN ULONG Left, IN ULONG Top, IN ULONG Right, IN ULONG Bottom, IN ULONG Color)
BOOLEAN NTAPI SeSinglePrivilegeCheck(IN LUID PrivilegeValue, IN KPROCESSOR_MODE PreviousMode)
KPROCESSOR_MODE NTAPI ExGetPreviousMode(VOID)
#define VID_SKU_AREA_LEFT
#define PALETTE_FADE_TIME
enum _INBV_DISPLAY_STATE INBV_DISPLAY_STATE
#define VID_SCROLL_AREA_TOP
#define VID_SKU_AREA_BOTTOM
BOOLEAN NTAPI ExVerifySuite(SUITE_TYPE SuiteType)
struct _BT_PROGRESS_INDICATOR BT_PROGRESS_INDICATOR
VOID NTAPI VidResetDisplay(_In_ BOOLEAN HalReset)
enum _ROT_BAR_TYPE ROT_BAR_TYPE
_Must_inspect_result_ _In_ WDFIORESREQLIST _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIORESLIST * ResourceList
static UCHAR RotBarBuffer[24 *9]
VOID NTAPI InbvSetProgressBarCoordinates(IN ULONG Left, IN ULONG Top, IN ULONG Width, IN ULONG Height)
static ULONG ProgressBarWidth
static UCHAR RotLineBuffer[SCREEN_WIDTH *6]
NTSTATUS NTAPI HeadlessDispatch(IN HEADLESS_CMD Command, IN PVOID InputBuffer, IN SIZE_T InputBufferSize, OUT PVOID OutputBuffer, OUT PSIZE_T OutputBufferSize)
enum _BBLT_VERT_ALIGNMENT BBLT_VERT_ALIGNMENT
VOID NTAPI InbvReleaseLock(VOID)
PVOID NTAPI FindBitmapResource(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG ResourceId)
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
NTSTATUS NTAPI NtDisplayString(IN PUNICODE_STRING DisplayString)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID NTAPI InbvUpdateProgressBar(IN ULONG Progress)
VOID FASTCALL KiReleaseSpinLock(IN PKSPIN_LOCK SpinLock)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
BOOLEAN NTAPI MmChangeKernelResourceSectionProtection(IN ULONG_PTR ProtectionMask)
NTSTATUS NTAPI KeDelayExecutionThread(IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval OPTIONAL)
BOOLEAN NTAPI InbvDriverInitialize(IN PLOADER_PARAMETER_BLOCK LoaderBlock, IN ULONG Count)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define VID_SCROLL_AREA_LEFT
static BOOLEAN InbvDisplayDebugStrings
VOID NTAPI VidCleanUp(VOID)
VOID NTAPI InbvAcquireLock(VOID)
static ROT_BAR_STATUS PltRotBarStatus
enum _ROT_BAR_STATUS ROT_BAR_STATUS
VOID NTAPI InbvSetDisplayOwnership(IN BOOLEAN DisplayOwned)
NTSTATUS NTAPI LdrFindResource_U(_In_ PVOID BaseAddress, _In_ PLDR_RESOURCE_INFO ResourceInfo, _In_ ULONG Level, _Out_ PIMAGE_RESOURCE_DATA_ENTRY *ResourceDataEntry)
static ULONG ProgressBarLeft
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
VOID NTAPI InbvSetTextColor(IN ULONG Color)
#define VID_PROGRESS_BAR_LEFT
#define IDB_STORAGE_SERVER
NTSTATUS NTAPI LdrAccessResource(_In_ PVOID BaseAddress, _In_ PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry, _Out_opt_ PVOID *Resource, _Out_opt_ PULONG Size)
BOOLEAN FASTCALL KeTestSpinLock(IN PKSPIN_LOCK SpinLock)
struct tagRGBQUAD RGBQUAD
struct _LIST_ENTRY * Flink
static __inline VOID ReleaseCapturedUnicodeString(IN PUNICODE_STRING CapturedString, IN KPROCESSOR_MODE CurrentMode)
_In_ KPROCESSOR_MODE PreviousMode
static INBV_PROGRESS_STATE InbvProgressState
static VOID NTAPI InbvRotationThread(_In_ PVOID Context)
VOID NTAPI VidBitBlt(_In_ PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top)
#define NT_SUCCESS(StatCode)
#define ROT_BAR_DEFAULT_MODE
_In_ WDFCOLLECTION _In_ ULONG Index
ULONG NTAPI VidSetTextColor(_In_ ULONG Color)
#define VID_SKU_AREA_RIGHT
VOID NTAPI VidSolidColorFill(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom, _In_ UCHAR Color)
VOID NTAPI DisplayFilter(PCHAR *String)
#define BV_COLOR_DARK_GRAY
VOID NTAPI FinalizeBootLogo(VOID)
#define ExAllocatePoolWithTag(hernya, size, tag)
VOID NTAPI InbvAcquireDisplayOwnership(VOID)
static ULONG ResourceCount
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
VOID NTAPI VidScreenToBufferBlt(_Out_writes_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
VOID(NTAPI * INBV_DISPLAY_STRING_FILTER)(PCHAR *Str)
#define BV_COLOR_LIGHT_CYAN
static INBV_DISPLAY_STRING_FILTER InbvDisplayFilter
#define VID_PROGRESS_BAR_TOP
static ROT_BAR_TYPE RotBarSelection
#define VID_PROGRESS_BAR_HEIGHT
VOID DisplayString(LPWSTR Msg)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
const LUID SeTcbPrivilege
BOOLEAN NTAPI InbvEnableDisplayString(IN BOOLEAN Enable)
#define VID_SCROLL_AREA_RIGHT
BOOLEAN NTAPI InbvIsBootDriverInstalled(VOID)
enum _BBLT_HORZ_ALIGNMENT BBLT_HORZ_ALIGNMENT
#define RESOURCE_DATA_LEVEL
BOOLEAN ExpInTextModeSetup
BOOLEAN NTAPI InbvResetDisplay(VOID)
static VOID BitBltAligned(IN PVOID Image, IN BOOLEAN NoPalette, IN BBLT_HORZ_ALIGNMENT HorizontalAlignment, IN BBLT_VERT_ALIGNMENT VerticalAlignment, IN ULONG MarginLeft, IN ULONG MarginTop, IN ULONG MarginRight, IN ULONG MarginBottom)
#define VID_SKU_TEXT_LEFT
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
static LPHIST_ENTRY Bottom
VOID NTAPI VidSetScrollRegion(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Right, _In_ ULONG Bottom)
#define STATUS_BUFFER_OVERFLOW
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOLEAN NTAPI VidInitialize(_In_ BOOLEAN SetMode)
static BOOLEAN RotBarThreadActive
struct _INBV_PROGRESS_STATE INBV_PROGRESS_STATE
NTSTATUS NTAPI PsTerminateSystemThread(IN NTSTATUS ExitStatus)
VOID FASTCALL KiAcquireSpinLock(IN PKSPIN_LOCK SpinLock)
NTSTATUS NTAPI PsCreateSystemThread(OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, IN PCLIENT_ID ClientId, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext)
UNICODE_STRING BaseDllName
VOID NTAPI InbvBitBlt(IN PUCHAR Buffer, IN ULONG X, IN ULONG Y)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING *)
VOID NTAPI InbvInstallDisplayStringFilter(IN INBV_DISPLAY_STRING_FILTER Filter)
#define VID_SKU_SAVE_AREA_TOP
static INBV_DISPLAY_STATE InbvDisplayState
#define VID_PROGRESS_BAR_WIDTH
#define IDB_ROTATING_LINE
VOID NTAPI VidBufferToScreenBlt(_In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_ ULONG Delta)
int strcmp(const char *String1, const char *String2)
static ULONG InbvTerminalBkgdColor
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
static ULONG ProgressBarTop
PUCHAR NTAPI InbvGetResourceAddress(IN ULONG ResourceNumber)
static KSPIN_LOCK BootDriverLock
#define ExFreePoolWithTag(_P, _T)
BOOLEAN InbvBootDriverInstalled
VOID NTAPI InbvSetScrollRegion(IN ULONG Left, IN ULONG Top, IN ULONG Right, IN ULONG Bottom)
BOOLEAN NTAPI InbvCheckDisplayOwnership(VOID)
BOOLEAN(NTAPI * INBV_RESET_DISPLAY_PARAMETERS)(ULONG Cols, ULONG Rows)
static RGBQUAD MainPalette[16]
NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive)
#define IDB_CLUSTER_SERVER
static BOOLEAN ShowProgressBar
#define IDB_SERVER_HEADER
static VOID BitBltPalette(IN PVOID Image, IN BOOLEAN NoPalette, IN ULONG X, IN ULONG Y)
#define RTL_CONSTANT_STRING(s)
struct tagRGBQUAD * LPRGBQUAD