setupldr!SlGetSectionKeyIndex函数分析

📅 发布时间:2026/7/7 22:07:06 👁️ 浏览次数:
setupldr!SlGetSectionKeyIndex函数分析
setupldr!SlGetSectionKeyIndex函数分析//// Load the HAL.//strcpy(HalDirectoryPath, BootPath);。。。} else {//// Note that on x86, the HAL may be on floppy #1 or floppy #2//strcat(HalDirectoryPath,HalName);SlGetDisk(HalName);BlOutputLoadMessage(BootDevice, HalDirectoryPath, BlFindMessage(SL_HAL_NAME));#ifdef i386retryhal:#endifStatus BlLoadImage(BootDeviceId,LoaderHalCode,HalDirectoryPath,TARGET_IMAGE,HalBase);kd kc 5#00 setupldr!SlGetDisk01 setupldr!SlInit02 setupldr!BlStartup03 setupldr!NtProcessStartupWARNING: Frame IP not in any known module. Following frames may be wrong.04 0x0kd dvFilename 0x8023eedd halaacpi.dllFileId 8DiskName 0x8023eedd halaacpi.dllPlatformSpecificSection char [128] ???[SourceDisksFiles.x86]halaacpi.dll 1,,,,,,3_,2,3,,,1,2#if defined(ELTORITO)if (ElToritoCDBoot) {// for Cd boot we use the setup media path instead of a boot-media-specific pathDiskNumber SlGetSectionKeyIndex(InfFile,PlatformSpecificSection,Filename,0);}kd teax00060b30 ebx00000000 ecx00000000 edx00324588 esi0032458d edi00060b45eip0031b9a8 esp00060b10 ebp00060bb4 iopl0 nv up di pl nz na po nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000002setupldr!SlGetSectionKeyIndex:0031b9a8 55 push ebpkd dvINFHandle 0x8007b0d8SectionName 0x00060b30 SourceDisksFiles.x86Key 0x8023eedd halaacpi.dllValueIndex 0if((pSection SearchSectionByName((PINF)INFHandle,SectionName)) (PSECTION)NULL)return((PCHAR)NULL);kd peax80275d90 ebx00000000 ecx00060b30 edx00324588 esi0032458d edi00060b45eip0031b9b8 esp00060b0c ebp00060b0c iopl0 nv up di ng nz na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000086setupldr!SlGetSectionKeyIndex0x10:0031b9b8 741c je setupldr!SlGetSectionKeyIndex0x2e (0031b9d6) [br0]kd dt _SECTION 80275d90setupldr!_section0x000 pNext : 0x80275870 _section0x004 pName : 0x80275460 SourceDisksFiles.x860x008 pLine : 0x80275da0 _linekd dx -r1 ((setupldr!_section *)0x80275870)((setupldr!_section *)0x80275870) : 0x80275870 [Type: _section *][0x000] pNext : 0x80273dc0 [Type: _section *][0x004] pName : 0x80275297 : SourceDisksFiles.amd64 [Type: char *][0x008] pLine : 0x80275880 [Type: _line *]if((pLine SearchLineInSectionByKey(pSection,Key,NULL)) (PLINE)NULL)return((PCHAR)NULL);kd peax80279c90 ebx00000000 ecx8023eedd edx00324588 esi0032458d edi00060b45eip0031b9c7 esp00060b0c ebp00060b0c iopl0 nv up di ng nz na pe nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000086setupldr!SlGetSectionKeyIndex0x1f:0031b9c7 740d je setupldr!SlGetSectionKeyIndex0x2e (0031b9d6) [br0]kd dt _LINE 80279c90setupldr!_line0x000 pNext : 0x80279ce0 _line0x004 pName : 0x80279639 halaacpi.dll0x008 InternalValues : [10] 0x80279646 10x030 pFirstExternalValue : 0x80279cc8 _valuekd dx -r1 (*((setupldr!char * (*)[10])0x80279c98))(*((setupldr!char * (*)[10])0x80279c98)) [Type: char * [10]][0] : 0x80279646 : 1 [Type: char *][1] : 0x34354b : [Type: char *][2] : 0x34354b : [Type: char *][3] : 0x34354b : [Type: char *][4] : 0x34354b : [Type: char *][5] : 0x34354b : [Type: char *][6] : 0x80279648 : 3_ [Type: char *][7] : 0x8027964b : 2 [Type: char *][8] : 0x8027964d : 3 [Type: char *][9] : 0x34354b : [Type: char *]kd dx -r1 ((setupldr!_line *)0x80279ce0)((setupldr!_line *)0x80279ce0) : 0x80279ce0 [Type: _line *][0x000] pNext : 0x80279d30 [Type: _line *][0x004] pName : 0x80279653 : halacpi.dll [Type: char *][0x008] InternalValues [Type: char * [10]][0x030] pFirstExternalValue : 0x80279d18 [Type: _value *]if((pName SearchValueInLine(pLine,ValueIndex)) (PCHAR)NULL)return((PCHAR)NULL);kd peax80279646 ebx00000000 ecx00000000 edx0000000a esi0032458d edi00060b45eip0031b9da esp00060b0c ebp00060b0c iopl0 nv up di ng nz na po nccs0008 ss0010 ds0010 es0010 fs0030 gs0000 efl00000082setupldr!SlGetSectionKeyIndex0x32:0031b9da 50 push eaxkd db 8027964680279646 31 00 33 5f 00 32 00 33-00 31 00 32 00 68 61 6c 1.3_.2.3.1.2.hal