ज़िप्पीवी, आप सही थे, और गलत भी। कॉलिंग हैलडिस्प्लेस्ट्रिंग कंप्यूटर को ब्लूस्क्रीन पर स्विच करने और टेक्स्ट प्रिंट करने का कारण नहीं बनती है, लेकिन यह कस्टम ब्लूस्क्रीन पर प्रारंभिक ब्लूस्क्रीन के बाद टेक्स्ट प्रिंट करेगी। यहां कुछ कोड है जो एक बार डीडीके द्वारा संकलित और ड्राइवर के रूप में चलाने के लिए एक ब्लूस्क्रीन और HalDisplayString का उपयोग करके प्रिंट टेक्स्ट बनाएगा।
#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;
}
इन यहां इस्तेमाल किया कार्यों के सभी undocumented हैं और मैं उन्हें अपने आप को यह पता लगाने (और ReactOS स्रोत कोड में उनमें से 2 को देखने) के लिए इसलिए उन्हें बुला सावधान रहना था। आप इस कोड को विंडोज डीडीके के साथ संकलित कर सकते हैं और किसी भी पुराने ड्राइवर लोडर के साथ ड्राइवर लोड कर सकते हैं। आप रंग फ़ंक्शन पैरामीटर (किसी की मौत की ग्रीन स्क्रीन) को बदलकर पृष्ठभूमि और टेक्स्ट रंग बदल सकते हैं। मुझे लगता है कि वे एक आईआरबीजी (तीव्रता लाल ग्रीन ब्लू) प्रणाली का उपयोग करते हैं। यह भी याद रखें कि यह एक वास्तविक ब्लूस्क्रीन की तरह है और एकमात्र तरीका है कि मुझे पता है कि इससे कैसे छुटकारा पाना है कंप्यूटर को पुनरारंभ करना, इसलिए सावधान रहें और मज़े करें!
तो ये वही कार्य हैं जो माइक्रोसॉफ्ट बीएसओडी बनाने के लिए उपयोग करता है? – ZippyV
हां, लेकिन यह ब्लूस्क्रीन का केवल दृश्य हिस्सा है। – user37875