<br><p>你好</p><p>你说的这种情况,一般都是由 系统软件、内存、硬盘引起的。</p><p>1 电脑不心装上了恶意软件,或上网时产生了恶意程序,建议用360 卫士 、金山卫士等软件,清理垃圾,查杀恶意软件,完成后重启电脑,就可能解决。实在不行,重装,还原过系统,可以解决软件引起的问题。</p><p>2 如果不能进入系统,可以开机后 到系统选择那里 按f8 选 起作用的最后一次正确配置(可以解决因驱动装错造成的错误)和带网络连接安全模式(进去后是有网络的,再用360软件弄下),可能就可以修复。</p><p>3 点 开始菜单 运行 输入 cmd 回车,在命令提示符下输入</p><p>for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1 然后 回车。然后让他运行完,应该就可能解决。</p><p>4 最近电脑中毒、安装了不稳定的软件、等,建议全盘杀毒,卸了那个引发问题的软件,重新安装其他 版本,就可能解决. 再不行,重新装过系统就ok.</p><p>5 电脑机箱里面内存条进灰尘,拆开机箱,拆下内存条,清洁下内存金手指,重新装回去,就可能可以了。(c【【微信】】总结的,旧电脑经常出现这样的问题)</p><p>6 电脑用久了内存坏、买到水货内存、多条内存一起用不兼容等,建议更换内存即可能解决。</p><p>7 很多时候由于系统和显卡驱动的兼容性不好,也会出现这样的错误,建议你换个其他版本的显卡驱动安装,或换个其他版本的系统安装。</p><p>8 电脑用久了,硬盘坏,重新分区安装系统可以修复逻辑坏道,还是不行,那就到了该换硬盘的时候了,换个硬盘就可以解决。</p><p>硬件方面的问题,如果你不专业,建议拿到电脑店去测试,测试好了讲好价再换</p> <br><br><h1 style="font-size: 38px;color: #4d4f53;"> 怎样才能让电脑蓝屏</h1><br><p>一、蓝屏概述</p> <p>当系统发生了非常严重的错误时,系统会以蓝屏的形式停止工作。一般驱动程序中如果出现了空指针等错误,都有可能引发蓝屏。我们可以编写驱动程序实现一个蓝屏炸弹。</p> <p>?</p> <p>二、环境搭建</p> <p>编译驱动程序需要大量的头文件、库文件。这些文件并没有附带在【【微信】】中。因此,如果需要编写驱动程序,需要先下载安装Windows Dri【【微信】】(即DDK)。下载地址:Windows Dri【【微信】】.1.0?下载后用虚拟光驱加载安装。</p> <p>?</p> <p>三、编写驱动程序</p> <p>我从《<span>Windows驱动开发技术详解》摘录了一段代码,贴在下面。</span></p> <p><span>Driver.h</span></p> <p><span><textarea> #【【微信】】#ifdef __cplusplus extern "C" { #endif #include <NTDDK.h> #ifdef __cplusplus } #endif #define PAGEDCODE code_seg("PAGE") #define LOCKEDCODE code_seg() #define INITCODE code_seg("INIT")#define PAGEDDATA data_seg("PAGE") #define LOCKEDDATA data_seg() #define INITDATA data_seg("INIT")#define arraysize(p) (sizeof(p)/sizeof((p)[0]))typedef struct _DEVICE_EXTENSION {PDE【【微信】】 【【微信】】;UNICODE_STRING ustrDe【【微信】】; //设备名称【【微信】】kName; //符号链接名 } DEVICE_EXTENSION, *PDEVICE_EXTENSION;// 函数声明NTSTATUS CreateDevice (IN PDRIVER_OBJECT pDriverObject); 【【微信】】 (IN PDRIVER_OBJECT pDriverObject); NTSTATUS HelloDDKDispatchRoutine(IN PDE【【微信】】,IN PIRP pIrp);</textarea> </span></p> <p>?</p> <p><span>Driver.cpp</span></p> <p><span><textarea>#include "Driver.h" #pragma INITCODE extern "C" NTSTATUS Dri【【微信】】 (IN PDRIVER_OBJECT pDriverObject,IN PUNICODE_STRING pRegistryPath) {NTSTATUS status;KdPrint(("Enter Dri【【微信】】/n"));KeBugCheckEx(0x00000000, 0x12345678, 0x87654321, 0x11223344, 0x55667788);//注册其他驱动调用函数入口pDriverObject->Dri【【微信】】 = 【【淘密令】】;pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutine;pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKDispatchRoutine;pDriverObject->MajorFunction[IRP_MJ_WRITE] = HelloDDKDispatchRoutine;pDriverObject->MajorFunction[IRP_MJ_READ] = HelloDDKDispatchRoutine;//创建驱动设备对象status = CreateDevice(pDriverObject);KdPrint(("Dri【【微信】】 end/n"));return status; } #pragma INITCODE NTSTATUS CreateDevice (IN PDRIVER_OBJECT pDriverObject) {NTSTATUS status;PDE【【微信】】;PDE【【微信】】t;//创建设备名称UNICODE_STRING devName;【【微信】】(&devName,L"//Device//My【【微信】】");//创建设备status = IoCreateDevice( pDriverObject, sizeof(DEVICE_EXTENSION),&(UNICODE_STRING)devName,【【微信】】,0, TRUE,&pDevObj );if (!【【微信】】(status))return status;pDevObj->Flags |= 【【微信】】;pDevExt = (PDEVICE_EXTENSION)pDevObj->【【微信】】;pDevExt->【【微信】】 = pDevObj;pDevExt->ustrDe【【微信】】 = devName;//创建符号链接【【微信】】kName;【【微信】】(&symLinkName,L"////HelloDDK");pDevExt->【【微信】】 = symLinkName;status = IoCreateSymbolicLink( &symLinkName,&devName );if (!【【微信】】(status)) {【【微信】】( pDevObj );return status;}return STATUS_SUCCESS; } #pragma PAGEDCODE 【【微信】】 (IN PDRIVER_OBJECT pDriverObject) {PDE【【微信】】 pNextObj;KdPrint(("Enter Dri【【微信】】/n"));pNextObj = pDriverObject->DeviceObject;while (pNextObj != NULL) {PDE【【微信】】t = (PDE【【微信】】extObj->【【微信】】;//删除符号链接【【微信】】ame = pDevExt->【【微信】】;IoDeleteSymbolicLink(&pLinkName);pNextObj = pNextObj->NextDevice;【【微信】】( pDevExt->【【微信】】 );} } #【【微信】】TUS HelloDDKDispatchRoutine(IN PDE【【微信】】,IN PIRP pIrp) {KdPrint(("Enter HelloDDKDispatchRoutine/n"));NTSTATUS status = STATUS_SUCCESS;// 完成IRPpIrp->IoStatus.Status = status;pIrp->IoStatus.Information = 0; // bytes xferedIoCompleteRequest( pIrp, 【【微信】】 );KdPrint(("Lea【【微信】】utine/n"));return status; }</textarea> </span></p> <p><span>蓝屏是由KeBugCheck或KeBugCheckEx这两个函数引发的。这两个函数的原型如下:</span></p> <p><span><textarea>【【微信】】(IN ULONG BugCheckCode); 【【微信】】Ex(IN ULONG BugCheckCode,IN ULONG_PTR BugCheckParameter1,IN ULONG_PTR BugCheckParameter2,IN ULONG_PTR BugCheckParameter3,IN ULONG_PTR BugCheckParameter4);</textarea> </span></p> <p><span>其中KeBugCheckEx函数的第一个参数和KeBugCheck中的参数是一样的。关于这些参数,从下面一张蓝屏的图片中就能看出其作用了</span><span>。</span></p> <p>?</p> <p><span>四、编译</span></p> <p><span>打开开始菜单,找到DDK的目录,展开Build En【【微信】】,选择与你电脑符合的编译环境。比如我的电脑是 Windows 【【微信】】。注意,有两个版本Checked和Free,类似与VC++中的Debug和Release版本。这里我们选择Free,可以去掉所有的调试符号,减小代码的文件尺寸。</span></p> <p><span>在编译之前,我们需要准备两个文件,【【微信】】和Sources</span></p> <p><span>【【微信】】只需一行:</span></p> <p><span>!INCLUDE $(NTMAKEENV)/【【微信】】.def</span></p> <p><span>继承DDK默认配置</span></p> <p><span>而Sources文件需要指明文件类型以及相关包含文件的路径</span></p> <p><span><textarea>TARGETNAME=HelloDDK TARGETTYPE=DRI【【微信】】=OBJINCLUDES=$(BASEDIR)/inc;/$(BASEDIR)/inc/ddk;/SOURCES=Driver.cpp/</textarea> </span></p> <p><span>有了这些文件,我们就可以开始编译驱动程序了。</span></p> <p><span>在编译环境的命令行窗口中,进入你存放源代码的目录,并执行build命令。如果编译成功的话你可以在当前目录下看到一个新的文件夹,进入最里层,你就能找到HelloDDK.sys这个驱动程序了。</span></p> <p>?</p> <p><span>五、测试</span></p> <p><span>由于这个驱动程序的作用是让电脑蓝屏,尽管并不会对你的电脑造成什么损害,但是在测试前请务必保存好你正在工作的文档,退出所有程序。电脑蓝屏了以后,你就只能重启了。</span></p> <p><span>驱动程序不像应用程序那样可以直接运行。因此我们还需要一个加载程序来加载驱动程序。限于篇幅,本文对此不展开详细讨论。一下仅给出程序代码,同样来自《<span>Windows驱动开发技术详解》一书。</span></span></p> <p><span><span><textarea>#include <windows.h> #include <winsvc.h> #include <conio.h> #include <stdio.h>#define DRI【【微信】】 "HelloDDK" #define DRI【【微信】】 "HelloDDK.sys"//装载NT驱动程序 BOOL LoadNTDriver(char* lpszDriverName,char* lpszDri【【微信】】) {char szDri【【微信】】[256];//得到完整的驱动路径GetFullPathName(lpszDri【【微信】】, 256, szDri【【微信】】, NULL);【【微信】】 = FALSE;SC_HANDLE hServiceMgr=NULL;//SCM管理器的句柄SC_HANDLE hServiceDDK=NULL;//NT驱动程序的服务句柄//打开服务控制管理器hServiceMgr = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );if( hServiceMgr == NULL ) {//OpenSCManager失败printf( "OpenSCManager() Faild %d ! /n", GetLastError() );bRet = FALSE;goto BeforeLeave;}else{//OpenSCManager成功printf( "OpenSCManager() ok ! /n" ); }//创建驱动所对应的服务hServiceDDK = CreateService( hServiceMgr,lpszDriverName, //驱动程序的在注册表中的名字 lpszDriverName, // 注册表驱动程序的 DisplayName 值 SER【【微信】】, // 加载驱动程序的访问权限 SER【【微信】】,// 表示加载的服务是驱动程序 SER【【微信】】, // 注册表驱动程序的 Start 值 SER【【微信】】, // 注册表驱动程序的 ErrorControl 值 szDri【【微信】】, // 注册表驱动程序的 ImagePath 值 NULL, NULL, NULL, NULL, NULL); DWORD dwRtn;//判断服务是否失败if( hServiceDDK == NULL ) { dwRtn = GetLastError();if( dwRtn != ERROR_IO_PENDING && dwRtn != ERROR_SER【【微信】】 ) { //由于其他原因创建服务失败printf( "CrateService() Faild %d ! /n", dwRtn ); bRet = FALSE;goto BeforeLeave;} else {//服务创建失败,是由于服务已经创立过printf( "CrateService() 【【微信】】PENDING or ERROR_SER【【微信】】! /n" ); }// 驱动程序已经加载,只需要打开 hServiceDDK = 【【淘密令】】( hServiceMgr, lpszDriverName, SER【【微信】】 ); if( hServiceDDK == NULL ) {//如果打开服务也失败,则意味错误dwRtn = GetLastError(); printf( "【【淘密令】】() Faild %d ! /n", dwRtn ); bRet = FALSE;goto BeforeLeave;} else {printf( "【【淘密令】】() ok ! /n" );}} else {printf( "CrateService() ok ! /n" );}//开启此项服务bRet= StartService( hServiceDDK, NULL, NULL ); if( !bRet ) { DWORD dwRtn = GetLastError(); if( dwRtn != ERROR_IO_PENDING && dwRtn != ERROR_SER【【微信】】 ) { printf( "StartService() Faild %d ! /n", dwRtn ); bRet = FALSE;goto BeforeLeave;} else { if( dwRtn == ERROR_IO_PENDING ) { //设备被挂住printf( "StartService() 【【微信】】G ! /n");bRet = FALSE;goto BeforeLeave;} else { //服务已经开启printf( "StartService() Faild ERROR_SER【【微信】】 ! /n");bRet = TRUE;goto BeforeLeave;} } }bRet = TRUE; //离开前关闭句柄 BeforeLeave:if(hServiceDDK){CloseServiceHandle(hServiceDDK);}if(hServiceMgr){CloseServiceHandle(hServiceMgr);}return bRet; } //卸载驱动程序 BOOL UnloadNTDriver( char * 【【微信】】 ) {【【微信】】 = FALSE;SC_HANDLE hServiceMgr=NULL;//SCM管理器的句柄SC_HANDLE hServiceDDK=NULL;//NT驱动程序的服务句柄SER【【微信】】;//打开SCM管理器hServiceMgr = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS ); if( hServiceMgr == NULL ) {//带开SCM管理器失败printf( "OpenSCManager() Faild %d ! /n", GetLastError() ); bRet = FALSE;goto BeforeLeave;} else {//带开SCM管理器失败成功printf( "OpenSCManager() ok ! /n" ); }//打开驱动所对应的服务hServiceDDK = 【【淘密令】】( hServiceMgr, 【【微信】】, SER【【微信】】 ); if( hServiceDDK == NULL ) {//打开驱动所对应的服务失败printf( "【【淘密令】】() Faild %d ! /n", GetLastError() ); bRet = FALSE;goto BeforeLeave;} else { printf( "【【淘密令】】() ok ! /n" ); } //停止驱动程序,如果停止失败,只有重新启动才能,再动态加载。 if( !【【微信】】( hServiceDDK, SERVICE_CONTROL_STOP , &SvrSta ) ) { printf( "【【微信】】() Faild %d !/n", GetLastError() ); } else {//打开驱动所对应的失败printf( "【【微信】】() ok !/n" ); } //动态卸载驱动程序。 if( !DeleteService( hServiceDDK ) ) {//卸载失败printf( "D【【微信】】() Faild %d !/n", GetLastError() ); } else { //卸载成功printf( "DelServer:【【微信】】() ok !/n" ); } bRet = TRUE; BeforeLeave: //离开前关闭打开的句柄if(hServiceDDK){CloseServiceHandle(hServiceDDK);}if(hServiceMgr){CloseServiceHandle(hServiceMgr);}return bRet; } 【【微信】】() {//测试驱动程序 HANDLE hDevice = 【【微信】】("https://www.ngui.cc/zz//HelloDDK", GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); if( hDevice != 【【微信】】 ) {printf( "Create Device ok ! /n" ); }else {printf( "Create De【【微信】】 ! /n", GetLastError() ); }CloseHandle( hDevice ); } 【【微信】】t argc, char* argv[]) {//加载驱动【【微信】】 = LoadNTDriver(DRI【【微信】】,DRI【【微信】】);if (!bRet){printf("LoadNTDri【【微信】】/n");return 0;}//加载成功printf( "press any to create device!/n" ); getch(); TestDriver();//这时候你可以通过注册表,或其他查看符号连接的软件验证。 printf( "press any to unload the driver!/n" ); getch(); //卸载驱动UnloadNTDriver(DRI【【微信】】);if (!bRet){printf("UnloadNTDri【【微信】】/n");return 0;}return 0; } </textarea> </span></span></p> <p><span><span>将此程序编译后和驱动程序放在同一个目录。运行即可蓝屏。</span></span></p> <p><span><span>看到那湛蓝的屏幕了没?重新启动吧~(事实上如果蓝屏了,你是看不到这句话的……)</span></span></p>
本文地址:
/show-91809.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。