setupldr源代码分析之得到SetupDevice和打开文件txtsetup.sif和biosinfo.inf
setupldr源代码分析之得到SetupDevice和打开文件txtsetup.sif和biosinfo.infkd gBreakpoint 8 hiteax80077068 ebx00000000 ecx00000049 edx00000001 esi00060e98 edi00000001eip0032a25a esp00060bbc ebp00060df4 iopl0 nv up di pl zr na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000046setupldr!SlInitDisplay:0032a25a 66a158203400 mov ax,word ptr [setupldr!GlobalSystemBlock0x8 (00342058)] ds:0010:003420580000kd gueax00000000 ebx00000000 ecx00000004 edx0000004a esi00060e98 edi00000001eip003261fb esp00060bc0 ebp00060df4 iopl0 nv up di pl nz na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000006setupldr!SlInit0x1b5:003261fb e824850000 call setupldr!BlIs386 (0032e724)kd u 32a25asetupldr!SlInitDisplay [d:\srv03rtm\base\boot\setup\arcdisp.c 708]:0032a25a 66a158203400 mov ax,word ptr [setupldr!GlobalSystemBlock0x8 (00342058)]0032a260 663d0100 cmp ax,10032a264 770c ja setupldr!SlInitDisplay0x18 (0032a272)0032a266 753c jne setupldr!SlInitDisplay0x4a (0032a2a4)0032a268 66833d5a20340002 cmp word ptr [setupldr!GlobalSystemBlock0xa (0034205a)],20032a270 7232 jb setupldr!SlInitDisplay0x4a (0032a2a4)0032a272 813d6c20340090000000 cmp dword ptr [setupldr!GlobalSystemBlock0x1c (0034206c)],90h0032a27c 7626 jbe setupldr!SlInitDisplay0x4a (0032a2a4)windbg .open -a 32a25akd x setupldr!ElToritoCDBoot003437a0 setupldr!ElToritoCDBoot 0x01 kd dvArgc 1Argv 0x00060e98kd dd 0x00060e9800060e98 00060e14 00000000 00000000 ffffffff00060ea8 ffffffff 00000030 365b365a 00060f0000060eb8 003013a2 00061ff0 00000000 0032286500060ec8 00000002 00000046 00061ff0 003015aa00060ed8 00379400 0038164f 00061d68 6767756200060ee8 55207265 676e6973 4f43203a 2064254d00060ef8 75614228 61522064 00000000 0000000000060f08 00000000 00000000 00000000 00000000kd db 60e1400060e14 6d 75 6c 74 69 28 30 29-64 69 73 6b 28 30 29 63 multi(0)disk(0)c00060e24 64 72 6f 6d 28 31 35 39-29 5c 53 45 54 55 50 4c drom(159)\SETUPL00060e34 44 52 00 00 ff 00 06 00-00 04 38 00 01 45 02 00 DR........8..E..00060e44 00 0f 06 00 00 02 00 00-80 00 00 00 38 00 00 00 ............8...00060e54 d0 00 00 00 ef 6a 33 00-33 6b 33 00 00 00 00 00 .....j3.3k3.....00060e64 00 00 00 00 cc 90 37 00-10 00 00 00 d0 0e 06 00 ......7.........00060e74 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00060e84 f0 4f ff ff 00 04 00 00-00 00 00 00 10 00 00 00 .O..............if (!WinPEAutoBoot) {//// If this is a winnt setup, then we want to behave as if// we were started from the location specified by the// OSLOADPARTITION and OSLOADFILENAME nv-ram variables.//p BlGetArgumentValue(Argc,Argv,osloadoptions);kd teax1fabbbff ebx00000000 ecxf7fa3203 edx1fabbbff esi00060e98 edi00348418eip0030de77 esp00060bb0 ebp00060df4 iopl0 nv up di pl zr na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00200046setupldr!BlGetArgumentValue:0030de77 55 push ebpkd dvArgc 1Argv 0x00060e98ArgumentName 0x00325184 osloadoptionskd gueax00000000 ebx00000000 ecx0000006f edx00000001 esi00060e98 edi00348418eip00326246 esp00060bc0 ebp00060df4 iopl0 nv up di pl zr na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00200046setupldr!SlInit0x200:00326246 3bc3 cmp eax,ebx} else {//// extract device name from our startup path//pstrrchr(Argv[0],)); eax00060e2cif (pNULL) {SlError(0);goto LoadFailed;}kd peax00060e2c ebx00000000 ecx00000018 edx00000001 esi00060e98 edi00348418eip0032631b esp00060bb8 ebp00060df4 iopl0 nv up di pl zr na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00200046setupldr!SlInit0x2d5:0032631b 3bc3 cmp eax,ebxkd db 00060e2c00060e2c 29 5c 53 45 54 55 50 4c-44 52 00 00 ff 00 06 00 )\SETUPLDR......kd dv SetupDeviceSetupDevice char [128] kd dx -r1 (*((setupldr!char (*)[128])0x348418))(*((setupldr!char (*)[128])0x348418)) : [Type: char [128]]kd db 0x34841800348418 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348428 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348438 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348448 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348458 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348468 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348478 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................00348488 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................strncpy(SetupDevice, Argv[0], (int)(p-Argv[0]1));SetupDevice[p-Argv[0]1] \0;kd db 0x34841800348418 6d 75 6c 74 69 28 30 29-64 69 73 6b 28 30 29 63 multi(0)disk(0)c00348428 64 72 6f 6d 28 31 35 39-29 00 00 00 00 00 00 00 drom(159).......00348438 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................得到了SetupDevicestatic CHAR CanonicalName[128];Status BlGenerateDeviceNames(SetupDevice,CanonicalName,NULL);kd dv CanonicalNameCanonicalName char [128] multi(0)disk(0)cdrom(159)strcpy(SetupDevice,CanonicalName);kd dv SetupDeviceSetupDevice char [128] multi(0)disk(0)cdrom(159)//// extract directory from our startup path.//if (BlBootingFromNet) {strcpy(SetupDirectory, \\);strcat(SetupDirectory, NetSetupPath);} else if (UseCommandConsole) {strcpy(SetupDirectory,\\cmdcons);} else if(*(p1) ! \\) {//// directory must begin at root//strcpy(SetupDirectory, \\);} else {*SetupDirectory \0;}strcat(SetupDirectory, p1);pstrrchr(SetupDirectory, \\);*(p1) \0;}kd x setupldr!UseCommandConsole00348ab0 setupldr!UseCommandConsole 0x00 kd dv SetupDirectorySetupDirectory char [128] \kd dx -r1 (*((setupldr!char (*)[128])0x348558))(*((setupldr!char (*)[128])0x348558)) : \ [Type: char [128]]kd db 0x34855800348558 5c 00kd kc#00 setupldr!BlAmd64Setup01 setupldr!SlInit02 setupldr!BlStartup03 setupldr!NtProcessStartupWARNING: Frame IP not in any known module. Following frames may be wrong.04 0x005 0x006 0x007 0x008 0x009 0x00a 0x00b 0x00c 0x00d 0x00e 0x00f 0x010 0x011 0x012 0x0kd dvSetupDevice 0x00348418 multi(0)disk(0)cdrom(159)deviceId 8alreadyDetected 0x00 dirId 0x30ed2cdetectedAmd64 0x00 status ArcOpen(SetupDevice, ArcOpenReadOnly, deviceId);kd dvSetupDevice 0x00348418 multi(0)disk(0)cdrom(159)deviceId 2if (status ESUCCESS) {status BlOpen(deviceId, \\AMD64, ArcOpenDirectory, dirId);kd dvSetupDevice 0x00348418 multi(0)disk(0)cdrom(159)deviceId 2alreadyDetected 0x00 dirId 0detectedAmd64 0x00 kd dv detectedAmd64detectedAmd64 0x00 #elsestrcat(SetupDirectory, BlAmd64Setup(NULL) ? AMD64\\ : I386\\ );#endifkd dv SetupDirectorySetupDirectory char [128] \I386PLDRkd dx -r1 (*((setupldr!char (*)[128])0x348558))(*((setupldr!char (*)[128])0x348558)) : \I386PLDR [Type: char [128]]kd db 0x34855800348558 5c 49 33 38 36 50 4c 44-52 00 00 00 00 00 00 00 \I386PLDR.......00348568 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00if (CheckUpgrades) {CHAR DriversDir[128];ARC_STATUS DirStatus;ULONG DeviceId, DirId;strcat(DriversDir, SetupDirectory);strcat(DriversDir, system32\\drivers);DirStatus ArcOpen(SetupDevice, ArcOpenReadOnly, DeviceId);if (ESUCCESS DirStatus) {DirStatus BlOpen(DeviceId, DriversDir, ArcOpenDirectory, DirId);if (ESUCCESS DirStatus) {CheckUpgrades FALSE; // looks like a WinPE bootBlClose(DirId);}ArcClose(DeviceId);}}kd kc#00 setupldr!BlOpen01 setupldr!SlInit02 setupldr!BlStartup03 setupldr!NtProcessStartupWARNING: Frame IP not in any known module. Following frames may be wrong.04 0x005 0x006 0x007 0x008 0x009 0x00a 0x00b 0x00c 0x00d 0x00e 0x00f 0x010 0x011 0x012 0x0kd dvDeviceId 2OpenPath 0x00060ce8 |???OpenMode ArcOpenDirectory (0n7)FileId 0x00060df0CompressedName char [256] ???kd x setupldr!BlFileTable00377d20 setupldr!BlFileTable struct _BL_FILE_TABLE [48]kd dx -r1 (*((setupldr!_BL_FILE_TABLE (*)[48])0x377d20))(*((setupldr!_BL_FILE_TABLE (*)[48])0x377d20)) [Type: _BL_FILE_TABLE [48]][0] [Type: _BL_FILE_TABLE][1] [Type: _BL_FILE_TABLE][2] [Type: _BL_FILE_TABLE][3] [Type: _BL_FILE_TABLE][4] [Type: _BL_FILE_TABLE][5] [Type: _BL_FILE_TABLE][6] [Type: _BL_FILE_TABLE][7] [Type: _BL_FILE_TABLE][8] [Type: _BL_FILE_TABLE][9] [Type: _BL_FILE_TABLE][10] [Type: _BL_FILE_TABLE][11] [Type: _BL_FILE_TABLE][12] [Type: _BL_FILE_TABLE][13] [Type: _BL_FILE_TABLE][14] [Type: _BL_FILE_TABLE][15] [Type: _BL_FILE_TABLE][16] [Type: _BL_FILE_TABLE][17] [Type: _BL_FILE_TABLE][18] [Type: _BL_FILE_TABLE][19] [Type: _BL_FILE_TABLE][20] [Type: _BL_FILE_TABLE][21] [Type: _BL_FILE_TABLE][22] [Type: _BL_FILE_TABLE][23] [Type: _BL_FILE_TABLE][24] [Type: _BL_FILE_TABLE][25] [Type: _BL_FILE_TABLE][26] [Type: _BL_FILE_TABLE][27] [Type: _BL_FILE_TABLE][28] [Type: _BL_FILE_TABLE][29] [Type: _BL_FILE_TABLE][30] [Type: _BL_FILE_TABLE][31] [Type: _BL_FILE_TABLE][32] [Type: _BL_FILE_TABLE][33] [Type: _BL_FILE_TABLE][34] [Type: _BL_FILE_TABLE][35] [Type: _BL_FILE_TABLE][36] [Type: _BL_FILE_TABLE][37] [Type: _BL_FILE_TABLE][38] [Type: _BL_FILE_TABLE][39] [Type: _BL_FILE_TABLE][40] [Type: _BL_FILE_TABLE][41] [Type: _BL_FILE_TABLE][42] [Type: _BL_FILE_TABLE][43] [Type: _BL_FILE_TABLE][44] [Type: _BL_FILE_TABLE][45] [Type: _BL_FILE_TABLE][46] [Type: _BL_FILE_TABLE][47] [Type: _BL_FILE_TABLE]kd dx -r1 (*((setupldr!_BL_FILE_TABLE *)0x377d20))(*((setupldr!_BL_FILE_TABLE *)0x377d20)) [Type: _BL_FILE_TABLE][0x000] Flags [Type: _BL_FILE_FLAGS][0x004] DeviceId : 0x2 [Type: unsigned long][0x008] Position : {47548} [Type: _LARGE_INTEGER][0x010] StructureContext : 0x80079e60 [Type: void *][0x014] DeviceEntryTable : 0x34fce0 [Type: _BL_DEVICE_ENTRY_TABLE *][0x018] FileNameLength : 0x5 [Type: unsigned char][0x019] FileName : AMD64ect.com [Type: char [32]][0x040] u [Type: __unnamed]kd dx -r1 (*((setupldr!_BL_FILE_TABLE *)0x377d88))(*((setupldr!_BL_FILE_TABLE *)0x377d88)) [Type: _BL_FILE_TABLE][0x000] Flags [Type: _BL_FILE_FLAGS][0x004] DeviceId : 0x0 [Type: unsigned long][0x008] Position : {0} [Type: _LARGE_INTEGER][0x010] StructureContext : 0x0 [Type: void *][0x014] DeviceEntryTable : 0x0 [Type: _BL_DEVICE_ENTRY_TABLE *][0x018] FileNameLength : 0x0 [Type: unsigned char][0x019] FileName : [Type: char [32]][0x040] u [Type: __unnamed]kd dx -r1 (*((setupldr!_BL_FILE_TABLE *)0x377df0))(*((setupldr!_BL_FILE_TABLE *)0x377df0)) [Type: _BL_FILE_TABLE][0x000] Flags [Type: _BL_FILE_FLAGS][0x004] DeviceId : 0x0 [Type: unsigned long][0x008] Position : {47104} [Type: _LARGE_INTEGER][0x010] StructureContext : 0x0 [Type: void *][0x014] DeviceEntryTable : 0x34327c [Type: _BL_DEVICE_ENTRY_TABLE *][0x018] FileNameLength : 0x0 [Type: unsigned char][0x019] FileName : [Type: char [32]][0x040] u [Type: __unnamed]kd gueax00000012 ebx00000000 ecx0000b000 edx0000007c esi00060df0 edi00060d02eip00303635 esp00060aa4 ebp00060ba8 iopl0 nv up di pl nz na po nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000002setupldr!BlOpen0x62:00303635 85c0 test eax,eaxkd dx -r1 (*((setupldr!_BL_FILE_TABLE *)0x377d20))(*((setupldr!_BL_FILE_TABLE *)0x377d20)) [Type: _BL_FILE_TABLE][0x000] Flags [Type: _BL_FILE_FLAGS][0x004] DeviceId : 0x2 [Type: unsigned long][0x008] Position : {47548} [Type: _LARGE_INTEGER][0x010] StructureContext : 0x80079e60 [Type: void *][0x014] DeviceEntryTable : 0x34fce0 [Type: _BL_DEVICE_ENTRY_TABLE *][0x018] FileNameLength : 0x3 [Type: unsigned char][0x019] FileName : |???[Type: char [32]][0x040] u [Type: __unnamed]kd x setupldr!BlFilesOpened003437e4 setupldr!BlFilesOpened 1//// Turn on ability to load compressed files.//DecompEnableDecompression(TRUE);strcpy(KernelDirectoryPath, SetupDirectory);strcat(KernelDirectoryPath, txtsetup.sif);BlLoaderBlock-SetupLoaderBlock-IniFile NULL;Status SlInitIniFile(SetupDevice,0,KernelDirectoryPath,InfFile,BlLoaderBlock-SetupLoaderBlock-IniFile,BlLoaderBlock-SetupLoaderBlock-IniFileLength,ErrorLine);kd teax80078668 ebx00000000 ecx8007866c edxffff6373 esi003253a9 edi003481abeip0031be17 esp00060ba0 ebp00060df4 iopl0 nv up di ng nz na po nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000082setupldr!SlInitIniFile:0031be17 55 push ebpkd dvDevicePath 0x00348418 multi(0)disk(0)cdrom(159)DeviceId 0INFFile 0x00348198 \I386\txtsetup.sifpINFHandle 0x0034a7ecpINFBuffer 0x80078668INFBufferSize 0x8007866cErrorLine 0x00060db4ActualBase 0x31be17FileInfo struct _FILE_INFORMATIONFileID 0SizeRead 0DeviceID 8kd kc#00 setupldr!SlInitIniFile01 setupldr!SlInit02 setupldr!BlStartup03 setupldr!NtProcessStartupWARNING: Frame IP not in any known module. Following frames may be wrong.04 0x005 0x006 0x007 0x008 0x009 0x00a 0x00b 0x00c 0x00d 0x00e 0x00f 0x010 0x011 0x012 0x0kd gueax00000000 ebx00000000 ecx00000240 edx00000000 esi003253a9 edi003481abeip00326883 esp00060bc0 ebp00060df4 iopl0 nv up di pl zr na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000046setupldr!SlInit0x83d:00326883 3bc3 cmp eax,ebxkd x setupldr!InfFile0034a7ec setupldr!InfFile 0x8007b0d8kd db 0x8007b0d88007b0d8 b0 a8 21 80 00 00 00 00-56 65 72 73 69 6f 6e 00 ..!.....Version.8007b0e8 73 69 67 6e 61 74 75 72-65 00 43 6c 61 73 73 47 signature.ClassG8007b0f8 55 49 44 00 7b 30 30 30-30 30 30 30 30 2d 30 30 UID.{00000000-008007b108 30 30 2d 30 30 30 30 2d-30 30 30 30 2d 30 30 30 00-0000-0000-0008007b118 30 30 30 30 30 30 30 30-30 7d 00 53 6f 75 72 63 000000000}.Sourc8007b128 65 44 69 73 6b 73 4e 61-6d 65 73 00 5f 78 00 25 eDisksNames._x.%8007b138 63 64 6e 61 6d 65 25 00-25 63 64 74 61 67 66 69 cdname%.%cdtagfi8007b148 6c 65 25 00 5f 31 00 25-63 64 6e 61 6d 65 25 00 le%._1.%cdname%.kd db 0x8007b0d8808007b158 25 63 64 74 61 67 66 69-6c 65 25 00 5f 32 00 25 %cdtagfile%._2.%8007b168 63 64 6e 61 6d 65 25 00-25 63 64 74 61 67 66 69 cdname%.%cdtagfi8007b178 6c 65 25 00 5f 33 00 25-63 64 6e 61 6d 65 25 00 le%._3.%cdname%.8007b188 25 63 64 74 61 67 66 69-6c 65 25 00 5f 34 00 25 %cdtagfile%._4.%8007b198 63 64 6e 61 6d 65 25 00-25 63 64 74 61 67 66 69 cdname%.%cdtagfi8007b1a8 6c 65 25 00 5f 35 00 25-63 64 6e 61 6d 65 25 00 le%._5.%cdname%.8007b1b8 25 63 64 74 61 67 66 69-6c 65 25 00 5f 36 00 25 %cdtagfile%._6.%8007b1c8 63 64 6e 61 6d 65 25 00-25 63 64 74 61 67 66 69 cdname%.%cdtagfi参考I386\txtsetup.sif[Version]signature$Windows NT$ClassGUID{00000000-0000-0000-0000-000000000000}[SourceDisksNames]_x %cdname%,%cdtagfile%,,_1 %cdname%,%cdtagfile%,,_2 %cdname%,%cdtagfile%,,_3 %cdname%,%cdtagfile%,,_4 %cdname%,%cdtagfile%,,_5 %cdname%,%cdtagfile%,,_6 %cdname%,%cdtagfile%,,_7 %cdname%,%cdtagfile%,,1_ %cdname%,%cdtagfile%,,2_ %cdname%,%cdtagfile%,,3_ %cdname%,%cdtagfile%,,4_ %cdname%,%cdtagfile%,,5_ %cdname%,%cdtagfile%,,6_ %cdname%,%cdtagfile%,,7_ %cdname%,%cdtagfile%,,参考结束kd x setupldr!BlLoaderBlock0037721c setupldr!BlLoaderBlock 0x80077000kd dx -r1 ((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000)((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000) : 0x80077000 [Type: _LOADER_PARAMETER_BLOCK *][0x000] LoadOrderListHead [Type: _LIST_ENTRY][0x008] MemoryDescriptorListHead [Type: _LIST_ENTRY][0x010] BootDriverListHead [Type: _LIST_ENTRY][0x018] KernelStack : 0x0 [Type: unsigned long][0x01c] Prcb : 0x0 [Type: unsigned long][0x020] Process : 0x0 [Type: unsigned long][0x024] Thread : 0x0 [Type: unsigned long][0x028] RegistryLength : 0x0 [Type: unsigned long][0x02c] RegistryBase : 0x0 [Type: void *][0x030] ConfigurationRoot : 0x80078988 [Type: _CONFIGURATION_COMPONENT_DATA *][0x034] ArcBootDeviceName : 0x0 [Type: char *][0x038] ArcHalDeviceName : 0x0 [Type: char *][0x03c] NtBootPathName : 0x0 [Type: char *][0x040] NtHalPathName : 0x0 [Type: char *][0x044] LoadOptions : 0x80152090 : /FASTDETECT /NOGUIBOOT /NODEBUG [Type: char *][0x048] NlsData : 0x0 [Type: _NLS_DATA_BLOCK *][0x04c] ArcDiskInformation : 0x0 [Type: _ARC_DISK_INFORMATION *][0x050] OemFontFile : 0x0 [Type: void *][0x054] SetupLoaderBlock : 0x80078600 [Type: _SETUP_LOADER_BLOCK *][0x058] Extension : 0x80077068 [Type: _LOADER_PARAMETER_EXTENSION *][0x05c] u [Type: __unnamed]//// Now we know everything we should load, compute the ARC name to load// from and start loading things.//if (BootDeviceNULL) {//// No device was explicitly specified, so use whatever device// setupldr was started from.//BootDevice SlCopyStringA(SetupDevice);}#ifdef _X86_//// Load the bootfont.bin into memory//SlLoadBootFontFile(BlLoaderBlock-SetupLoaderBlock,BootDeviceId,BootFontImageLength);#endif // _X86_} else {BlLoaderBlock-ArcBootDeviceName BootDevice;}kd x setupldr!BlLoaderBlock0037721c setupldr!BlLoaderBlock 0x80077000kd dx -r1 ((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000)((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000) : 0x80077000 [Type: _LOADER_PARAMETER_BLOCK *][0x000] LoadOrderListHead [Type: _LIST_ENTRY][0x008] MemoryDescriptorListHead [Type: _LIST_ENTRY][0x010] BootDriverListHead [Type: _LIST_ENTRY][0x018] KernelStack : 0x0 [Type: unsigned long][0x01c] Prcb : 0x0 [Type: unsigned long][0x020] Process : 0x0 [Type: unsigned long][0x024] Thread : 0x0 [Type: unsigned long][0x028] RegistryLength : 0x0 [Type: unsigned long][0x02c] RegistryBase : 0x0 [Type: void *][0x030] ConfigurationRoot : 0x80078988 [Type: _CONFIGURATION_COMPONENT_DATA *][0x034] ArcBootDeviceName : 0x8021cb28 : multi(0)disk(0)cdrom(159) [Type: char *][0x038] ArcHalDeviceName : 0x0 [Type: char *][0x03c] NtBootPathName : 0x0 [Type: char *][0x040] NtHalPathName : 0x0 [Type: char *][0x044] LoadOptions : 0x80152090 : /FASTDETECT /NOGUIBOOT /NODEBUG [Type: char *][0x048] NlsData : 0x0 [Type: _NLS_DATA_BLOCK *][0x04c] ArcDiskInformation : 0x0 [Type: _ARC_DISK_INFORMATION *][0x050] OemFontFile : 0x0 [Type: void *][0x054] SetupLoaderBlock : 0x80078600 [Type: _SETUP_LOADER_BLOCK *][0x058] Extension : 0x80077068 [Type: _LOADER_PARAMETER_EXTENSION *][0x05c] u [Type: __unnamed][0x034] ArcBootDeviceName : 0x8021cb28 : multi(0)disk(0)cdrom(159) [Type: char *]BlLoaderBlock-Extension-InfFileImage NULL;BlLoaderBlock-Extension-InfFileSize 0;if (BiosInfo.Buffer) {if (Status ESUCCESS) {Status BlLoadBiosinfoInf( BootDeviceId,BlFindMessage(SL_BIOSINFO_NAME),BootPath,BiosInfo,BlLoaderBlock-Extension-InfFileImage,BlLoaderBlock-Extension-InfFileSize,BadFileName);}kd x setupldr!BiosInfo0034a7c8 setupldr!BiosInfo biosinfo.infkd x setupldr!BlLoaderBlock0037721c setupldr!BlLoaderBlock 0x80077000kd dx -r1 ((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000)((setupldr!_LOADER_PARAMETER_BLOCK *)0x80077000) : 0x80077000 [Type: _LOADER_PARAMETER_BLOCK *][0x000] LoadOrderListHead [Type: _LIST_ENTRY][0x008] MemoryDescriptorListHead [Type: _LIST_ENTRY][0x010] BootDriverListHead [Type: _LIST_ENTRY][0x018] KernelStack : 0x0 [Type: unsigned long][0x01c] Prcb : 0x0 [Type: unsigned long][0x020] Process : 0x0 [Type: unsigned long][0x024] Thread : 0x0 [Type: unsigned long][0x028] RegistryLength : 0x0 [Type: unsigned long][0x02c] RegistryBase : 0x0 [Type: void *][0x030] ConfigurationRoot : 0x80078988 [Type: _CONFIGURATION_COMPONENT_DATA *][0x034] ArcBootDeviceName : 0x8021cb28 : multi(0)disk(0)cdrom(159) [Type: char *][0x038] ArcHalDeviceName : 0x0 [Type: char *][0x03c] NtBootPathName : 0x0 [Type: char *][0x040] NtHalPathName : 0x0 [Type: char *][0x044] LoadOptions : 0x80152090 : /FASTDETECT /NOGUIBOOT /NODEBUG [Type: char *][0x048] NlsData : 0x0 [Type: _NLS_DATA_BLOCK *][0x04c] ArcDiskInformation : 0x0 [Type: _ARC_DISK_INFORMATION *][0x050] OemFontFile : 0x0 [Type: void *][0x054] SetupLoaderBlock : 0x80078600 [Type: _SETUP_LOADER_BLOCK *][0x058] Extension : 0x80077068 [Type: _LOADER_PARAMETER_EXTENSION *][0x05c] u [Type: __unnamed]kd dx -r1 ((setupldr!_LOADER_PARAMETER_EXTENSION *)0x80077068)((setupldr!_LOADER_PARAMETER_EXTENSION *)0x80077068) : 0x80077068 [Type: _LOADER_PARAMETER_EXTENSION *][0x000] Size : 0x50 [Type: unsigned long][0x004] Profile [Type: _PROFILE_PARAMETER_BLOCK][0x014] MajorVersion : 0x5 [Type: unsigned long][0x018] MinorVersion : 0x2 [Type: unsigned long][0x01c] InfFileImage : 0x80001000 [Type: void *] [0x01c] InfFileImage : 0x80001000[0x020] InfFileSize : 0xa92f [Type: unsigned long][0x024] TriageDumpBlock : 0x0 [Type: void *][0x028] LoaderPagesSpanned : 0x0 [Type: unsigned long][0x02c] HeadlessLoaderBlock : 0x0 [Type: _HEADLESS_LOADER_BLOCK *][0x030] SMBiosEPSHeader : 0x0 [Type: _SMBIOS_TABLE_HEADER *][0x034] DrvDBImage : 0x0 [Type: void *][0x038] DrvDBSize : 0x0 [Type: unsigned long][0x03c] NetworkLoaderBlock : 0x0 [Type: _NETWORK_LOADER_BLOCK *][0x040] HalpIRQLToTPR : 0x0 [Type: unsigned char *][0x044] HalpVectorToIRQL : 0x0 [Type: unsigned char *][0x048] FirmwareDescriptorListHead [Type: _LIST_ENTRY]kd db 0x8000100080001000 3b 0d 0a 3b 20 42 49 4f-53 49 4e 46 4f 2e 49 4e ;..; BIOSINFO.IN80001010 46 0d 0a 3b 0d 0a 3b 20-43 6f 70 79 72 69 67 68 F..;..; Copyrigh80001020 74 20 28 63 29 20 4d 69-63 72 6f 73 6f 66 74 20 t (c) Microsoft80001030 43 6f 72 70 6f 72 61 74-69 6f 6e 2e 20 20 41 6c Corporation. Al80001040 6c 20 72 69 67 68 74 73-20 72 65 73 65 72 76 65 l rights reserve80001050 64 2e 0d 0a 3b 0d 0a 0d-0a 5b 56 65 72 73 69 6f d...;....[Versio80001060 6e 5d 0d 0a 53 69 67 6e-61 74 75 72 65 3d 22 24 n]..Signature$80001070 43 48 49 43 41 47 4f 24-22 0d 0a 50 72 6f 76 69 CHICAGO$..Provi参考;; BIOSINFO.INF;; Copyright (c) Microsoft Corporation. All rights reserved.;[Version]Signature$CHICAGO$Provider%MSFT%DriverVer10/01/2002,5.2.3790.0[Cleanup]DelRegApmDelRegDelRegBadIDEDelRegDelRegBadPciIrqRoutingDelRegDelRegDelPCIHacksDelRegDelACPIRegDelRegUSBDisableSelectiveSuspendDelRegDelRegDelToshibaHibernateReg[ApmDelReg]HKLM,System\CurrentControlSet\Control\Biosinfo\APM,Attributes[BadIDEDelReg]HKLM,System\CurrentControlSet\Control\Biosinfo\PNPBios,DisableNodes[BadPciIrqRoutingDelReg]HKLM,System\CurrentControlSet\Control\Biosinfo\PciIrqRouting,Attributes[DelPCIHacks]HKLM,System\CurrentControlSet\Control\Pnp\PCI,PciHackFlags参考结束

相关新闻

你认真写下的每一个字,都值得被相信 ✨

你认真写下的每一个字,都值得被相信 ✨

夜深了。 你合上电脑,长舒一口气—— 论文终于改完了。 逻辑理顺了,文献核对了,格式调好了,连标点都检查了三遍。 你不是天才,只是足够认真。 可当你上传系统,看到那行红字: “AI生成概率&…

2026/5/17 4:34:45 阅读更多 →
【无人机】基于实时3D蒙特卡洛梯度搜索的自主无人机载空气过滤系统附matlab代码

【无人机】基于实时3D蒙特卡洛梯度搜索的自主无人机载空气过滤系统附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/7/3 15:56:42 阅读更多 →
Zookeeper四种节点类型,90%的人只会说概念

Zookeeper四种节点类型,90%的人只会说概念

各位朋友,今天跟大家聊一个社招面试高频题。 那天我在咖啡馆里改简历,对面坐着一个哥们,正准备跳槽。他一脸紧张地问我:“小米哥,Zookeeper四种Znode类型到底怎么讲?面试官一问我就脑袋空白……” 我笑了笑,说:别急,今天我们不讲枯燥的概念,我们讲一个故事。 把 Z…

2026/7/4 12:39:02 阅读更多 →

最新新闻

Swagger2 从入门到实战:构建优雅的API文档

Swagger2 从入门到实战:构建优雅的API文档

1. 什么是 Swagger2? Swagger2 是一套基于 OpenAPI 规范的开源工具集,用于设计、构建、文档化和消费 RESTful Web 服务。它通过注解和代码生成,让 API 文档与代码保持同步,极大提升了前后端协作效率。 2. 核心优势 代码即文档&…

2026/7/6 11:42:23 阅读更多 →
AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成

AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成

AWS SDK for Java 2.x 文件上传实战:3种授权方式对比与Spring Boot集成在当今云原生应用开发中,对象存储服务已成为不可或缺的基础设施。Amazon S3作为行业标杆,其Java SDK的V2版本带来了更现代化的API设计和性能优化。本文将深入探讨AWS SDK…

2026/7/6 11:42:23 阅读更多 →
AI漫剧制作全流程:从Stable Diffusion到剪映的工程化实践

AI漫剧制作全流程:从Stable Diffusion到剪映的工程化实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你有没有想过,把脑子里那些天马行空的故事,直接变成一部有画面、有声音、有节奏的动画短片?不是用…

2026/7/6 11:40:21 阅读更多 →
SpringBoot+Vue+MySQL学生成绩管理系统:从零部署到核心模块深度解析

SpringBoot+Vue+MySQL学生成绩管理系统:从零部署到核心模块深度解析

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 每到期末,课程设计、毕业设计、大作业的DDL就像悬在头顶的达摩克利斯之剑。很多同学都面临一个困境:想做一个能…

2026/7/6 11:38:20 阅读更多 →
AI Agent直接操作HTML:突破Figma AI局限,实现前端代码精准生成

AI Agent直接操作HTML:突破Figma AI局限,实现前端代码精准生成

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试用AI Agent自动生成UI设计稿时,发现一个普遍痛点:无论是使用Figma AI还是其他设计工具,…

2026/7/6 11:38:19 阅读更多 →
从Figma到HTML:构建精准可控的AI网页生成Agent实战指南

从Figma到HTML:构建精准可控的AI网页生成Agent实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试用 AI 生成设计稿或界面原型时,你是不是也遇到过这样的困境:让 AI 画一个简单的登录框,…

2026/7/6 11:38:19 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻