ZippyV, Sie hatten Recht, und auch falsch. Der Aufruf von HalDisplayString führt nicht dazu, dass der Computer zu einem Bluescreen wechselt und den Text druckt, aber er druckt Text nach dem anfänglichen Bluescreen auf einem benutzerdefinierten Bluescreen. Hier ist ein Code, der, einmal vom ddk kompiliert und als Treiber ausgeführt wird, einen Bluescreen erstellt und Text mit HalDisplayString druckt.
#include "ntddk.h"
#include "wdm.h"
VOID HalDisplayString(PSZ text);
VOID InbvAcquireDisplayOwnership(VOID);
VOID InbvResetDisplay(VOID);
INT InbvSetTextColor(INT color); //IRBG
VOID InbvDisplayString(PSZ text);
VOID InbvSolidColorFill(ULONG left,ULONG top,ULONG width,ULONG height,ULONG color);
VOID InbvSetScrollRegion(ULONG left,ULONG top,ULONG width,ULONG height);
VOID InbvInstallDisplayStringFilter(ULONG b);
VOID InbvEnableDisplayString(ULONG b);
DRIVER_INITIALIZE DriverEntry;
NTSTATUS DriverEntry(
__in struct _DRIVER_OBJECT *DriverObject,
__in PUNICODE_STRING RegistryPath
)
{
InbvAcquireDisplayOwnership(); //Takes control of screen
InbvResetDisplay(); //Clears screen
InbvSolidColorFill(0,0,639,479,4); //Colors the screen blue
InbvSetTextColor(15); //Sets text color to white
InbvInstallDisplayStringFilter(0); //Not sure but nessecary
InbvEnableDisplayString(1); //Enables printing text to screen
InbvSetScrollRegion(0,0,639,475); //Not sure, would recommend keeping
InbvDisplayString("I print text!\n"); //Prints text
HalDisplayString("And so do I!!!"); //Prints text
return 0;
}
All diese Funktionen hier verwendet werden, ohne Papiere und ich hatte sie selbst herausfinden (und aussehen 2 von ihnen in der reactos Quellcode nach oben) so vorsichtig sein, sie ruft. Sie können diesen Code mit dem Windows-DDK kompilieren und den Treiber mit jedem alten Treiberlader laden. Sie können den Hintergrund und die Textfarbe ändern, indem Sie die Farbfunktionsparameter ändern (grüner Bildschirm des Todes irgendjemand?). Ich denke, dass sie ein IRBG-System (Intensity Red Green Blue) verwenden. Denken Sie auch daran, das ist wie ein echter Bluescreen und der einzige Weg, wie ich es loswerden kann, ist, den Computer neu zu starten, also seien Sie vorsichtig und haben Sie Spaß!
Also sind dies die gleichen Funktionen, die Microsoft verwendet, um einen BSOD zu erstellen? – ZippyV
Ja, aber das ist nur der visuelle Teil des Bluescreen. – user37875