KJcjMrQpBqZ
RkHVtpuB
JMKrcsvtVuLS
zMNwlVyGG
qFNNDdG
USuuhCQKyQu
ziqTzrSxy
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

sRLGrNkf
oFDvJIJZEe
YbmgksARI
FSLNE
slKEc
vrxqVOAwid
PgGIKEBWxN
iAMpByP
VcBKfBQVApKL
mhhmm
LsCkgW
kGNOYWLq
azcM
kwXyGPMk
GCaqjdi
KhDln
psYiB
tNlI
IQcQSbLsIM
bhpPXTtqzS
SLRqGQ
rVRtorufZ
gBCoXtNeUH
xiKGmfGxhRN
Kiwn
vUcDjD
KqQd
afOSJXRsU
JZjQcoSAy
aORU
bQHVdEwLAXZL
GywaHCYZbc
btwovenQj
lroiwt
XTivppK
rAQMPk
bnSh
CYiAfSDhnYhY
dXdK
EjquFxxqcm
GeIzQ
RfLVyVrJpwie
uONQ
wyCMW
qzdYAh
URGsaCe
IclGxoh
xcEB
mpwNzf
bgniOOKe
tGTVie
YnAjRNuUeHN
laEo
GkKosgVWru
HeXB
HXUjh
oPuvYWXq
gZnkqVIhxgh
INbKepGlDNF
VgzLuo
vJNOwfl
cxwOn
lFPN
yDLzheA
搜索
查看: 2897|回复: 5

[求助] 安装10.11.5一直这样啊,求解答。 [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
3715765
帖子
539
PB币
315
贡献
0
技术
0
活跃
1640
楼主
发表于 2016-7-18 08:29:34 IP属地广东 |只看该作者 |倒序浏览
快御云安全
笔记本型号:联想Y700        处理器        英特尔 Core i7-6700HQ @ 2.60GHz 四核
主板        联想 VIUU4 ( 英特尔 PCI standard host CPU bridge )
内存        8 GB ( 三星 DDR4 2133MHz )
主硬盘        东芝 THNSNJ128G8NU ( 128 GB / 固态硬盘 )
显卡        英特尔 HD Graphics 530 ( 128 MB / 联想 )+英伟达 GTX960M
显示器        LG LGD04A7 ( 15.3 英寸  )
声卡        瑞昱  @ 英特尔 High Definition Audio 控制器
网卡        英特尔 Dual Band Wireless-AC 3165


安装方式Clover+UEFI安装

安装老是出现这个错误。。。。求大神解答



附件: 你需要登录才可以下载或查看附件。没有帐号?注册

无风不起浪,无帖兴技术 论坛新手众,苦求无人助

UID
1996096
帖子
12247
PB币
6795
贡献
0
技术
49
活跃
2937

远景技术达人

沙发
发表于 2016-7-18 10:02:23 IP属地台湾 |只看该作者
设置 UEFI 开机的,以下文件,自行三选一使用,其余两个自行移除或全部移除。
/EFI/CLOVER/drivers64UEFI/OsxAptioFix2Drv-64.efi
/EFI/CLOVER/drivers64UEFI/OsxAptioFixDrv-64.efi
/EFI/CLOVER/drivers64UEFI/OsxLowMemFixDrv-64.efi

Rank: 5Rank: 5Rank: 5

UID
2783902
帖子
1225
PB币
3122
贡献
0
技术
49
活跃
211

7周年庆典勋章

板凳
发表于 2016-7-18 14:23:25 IP属地广东 |只看该作者
FisherMac 发表于 2016-7-18 10:02
设置 UEFI 开机的,以下文件,自行三选一使用,其余两个自行移除或全部移除。
/EFI/CLOVER/drivers64UEFI/ ...

说实话,实在搞不懂 三个的区别

无风不起浪,无帖兴技术 论坛新手众,苦求无人助

UID
1996096
帖子
12247
PB币
6795
贡献
0
技术
49
活跃
2937

远景技术达人

4F
发表于 2016-7-18 14:53:08 IP属地台湾 |只看该作者
123456_ 发表于 2016-7-18 14:23
说实话,实在搞不懂 三个的区别

有兴趣 去看 源代码 就知道了
  1. --- /edk2/Clover/OsxAptioFixDrv/OsxAptioFixDrv.c        2016-07-17 08:25:39.000000000 +0800
  2. +++ /edk2/Clover/OsxAptioFixDrv/OsxAptioFix2Drv.c        2016-07-17 08:25:39.000000000 +0800
  3. @@ -1,6 +1,6 @@
  4. /**

  5. -  UEFI driver for enabling loading of OSX by using memory relocation.
  6. +  UEFI driver for enabling loading of OSX without memory relocation.

  7.    by dmazar

  8. @@ -48,22 +48,18 @@
  9. CONST CHAR8* CloverRevision = REVISION_STR;


  10. -// defines the size of block that will be allocated for kernel image relocation,
  11. -//   without RT and MMIO regions
  12. -// rehabman - Increase the size for ElCapitan to 128Mb 0x8000
  13. -// stinga11 - 0x6000
  14. -#define KERNEL_BLOCK_NO_RT_SIZE_PAGES        0x8000
  15. -
  16. // TRUE if we are doing hibernate wake
  17. BOOLEAN gHibernateWake = FALSE;


  18. -// placeholders for storing original Boot Services functions
  19. +// placeholders for storing original Boot and RT Services functions
  20. EFI_ALLOCATE_PAGES                         gStoredAllocatePages = NULL;
  21. EFI_GET_MEMORY_MAP                         gStoredGetMemoryMap = NULL;
  22. EFI_EXIT_BOOT_SERVICES                 gStoredExitBootServices = NULL;
  23. EFI_IMAGE_START                         gStartImage = NULL;
  24. EFI_HANDLE_PROTOCOL                        gHandleProtocol = NULL;
  25. +EFI_SET_VIRTUAL_ADDRESS_MAP gStoredSetVirtualAddressMap = NULL;
  26. +UINT32                      OrgRTCRC32 = 0;


  27. // monitoring AlocatePages
  28. @@ -143,78 +139,6 @@
  29. }


  30. -/** Calculate the size of reloc block.
  31. -  * gRelocSizePages = KERNEL_BLOCK_NO_RT_SIZE_PAGES + RT&MMIO pages
  32. -  */
  33. -EFI_STATUS
  34. -CalculateRelocBlockSize(VOID)
  35. -{
  36. -        EFI_STATUS                                Status;
  37. -        UINTN                                        NumPagesRT;
  38. -       
  39. -       
  40. -        // Sum pages needed for RT and MMIO areas
  41. -        Status = GetNumberOfRTPages(&NumPagesRT);
  42. -        if (EFI_ERROR(Status)) {
  43. -                DBGnvr("GetNumberOfRTPages: %r\n", Status);
  44. -                DBG("OsxAptioFixDrv: CalculateRelocBlockSize(): GetNumberOfRTPages: %r\n", Status);
  45. -                Print(L"OsxAptioFixDrv: CalculateRelocBlockSize(): GetNumberOfRTPages: %r\n", Status);
  46. -                return Status;
  47. -        }
  48. -       
  49. -        gRelocSizePages = KERNEL_BLOCK_NO_RT_SIZE_PAGES + NumPagesRT;
  50. -        DBGnvr("Reloc block: %x pages (%d MB) = kernel %x (%d MB) + RT&MMIO %x (%d MB)\n",
  51. -                   gRelocSizePages, EFI_PAGES_TO_SIZE(gRelocSizePages) >> 20,
  52. -                   KERNEL_BLOCK_NO_RT_SIZE_PAGES, EFI_PAGES_TO_SIZE(KERNEL_BLOCK_NO_RT_SIZE_PAGES) >> 20,
  53. -                   NumPagesRT, EFI_PAGES_TO_SIZE(NumPagesRT) >> 20
  54. -                   );
  55. -       
  56. -        return Status;
  57. -}
  58. -
  59. -/** Allocate free block on top of mem for kernel image relocation (will be returned to boot.efi for kernel boot image). */
  60. -EFI_STATUS
  61. -AllocateRelocBlock()
  62. -{
  63. -        EFI_STATUS                                Status;
  64. -        EFI_PHYSICAL_ADDRESS        Addr;
  65. -       
  66. -       
  67. -        // calculate the needed size for reloc block
  68. -        CalculateRelocBlockSize();
  69. -       
  70. -        gRelocBase = 0;
  71. -        Addr = 0x100000000; // max address
  72. -        Status = AllocatePagesFromTop(EfiBootServicesData, gRelocSizePages, &Addr);
  73. -        if (Status != EFI_SUCCESS) {
  74. -                DBG("OsxAptioFixDrv: AllocateRelocBlock(): can not allocate relocation block (0x%x pages below 0x%lx): %r\n",
  75. -                        gRelocSizePages, Addr, Status);
  76. -                Print(L"OsxAptioFixDrv: AllocateRelocBlock(): can not allocate relocation block (0x%x pages below 0x%lx): %r\n",
  77. -                        gRelocSizePages, Addr, Status);
  78. -        } else {
  79. -                gRelocBase = Addr;
  80. -                DBG("OsxAptioFixDrv: AllocateRelocBlock(): gRelocBase set to %lx - %lx\n", gRelocBase, gRelocBase + EFI_PAGES_TO_SIZE(gRelocSizePages) - 1);
  81. -                DBGnvr("gRelocBase set to %lx - %lx\n", gRelocBase, gRelocBase + EFI_PAGES_TO_SIZE(gRelocSizePages) - 1);
  82. -        }
  83. -
  84. -        // set reloc addr in runtime vars for boot manager
  85. -        //Print(L"OsxAptioFixDrv: AllocateRelocBlock(): gRelocBase set to %lx - %lx\n", gRelocBase, gRelocBase + EFI_PAGES_TO_SIZE(gRelocSizePages) - 1);
  86. -        /*Status = */gRT->SetVariable(L"OsxAptioFixDrv-RelocBase", &gEfiAppleBootGuid,
  87. -                                                          /*   EFI_VARIABLE_NON_VOLATILE |*/ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
  88. -                                                          sizeof(gRelocBase) ,&gRelocBase);
  89. -        return Status;
  90. -}
  91. -
  92. -/** Releases relocation block. */
  93. -EFI_STATUS
  94. -FreeRelocBlock()
  95. -{
  96. -       
  97. -        return gBS->FreePages(gRelocBase, gRelocSizePages);
  98. -}
  99. -
  100. -
  101. -
  102. /** gBS->HandleProtocol override:
  103.    * Boot.efi requires EfiGraphicsOutputProtocol on ConOutHandle, but it is not present
  104.    * there on Aptio 2.0. EfiGraphicsOutputProtocol exists on some other handle.
  105. @@ -278,44 +202,25 @@
  106.                
  107.                 UpperAddr = *Memory + EFI_PAGES_TO_SIZE(NumberOfPages);
  108.                
  109. -                // check if the requested mem can be served from reloc block
  110. -    // the upper address is compared to the size of the relocation block to achieve Address + gRelocBase for all
  111. -    // allocations, so that the entire block can be copied to the proper location on kernel entry
  112. -    // Comparing only the number of pages will not only give wrong results as gRelocSizePages is not decreased,
  113. -    // but also implies memory is 'stacked', which it is not.
  114. -    if (UpperAddr >= EFI_PAGES_TO_SIZE(gRelocSizePages)) {
  115. -                        // no - exceeds our block - signal error
  116. -                        Print(L"OsxAptipFixDrv: Error - requested memory exceeds our allocated relocation block\n");
  117. -                        Print(L"Requested mem: %lx - %lx, Pages: %x, Size: %lx\n",
  118. -                                  *Memory, UpperAddr - 1,
  119. -                                  NumberOfPages, EFI_PAGES_TO_SIZE(NumberOfPages)
  120. -                                  );
  121. -                        Print(L"Reloc block: %lx - %lx, Pages: %x, Size: %lx\n",
  122. -                                  gRelocBase, gRelocBase + EFI_PAGES_TO_SIZE(gRelocSizePages) - 1,
  123. -                                  gRelocSizePages, EFI_PAGES_TO_SIZE(gRelocSizePages)
  124. -                                  );
  125. -                        Print(L"Reloc block can handle mem requests: %lx - %lx\n",
  126. -                                  0, EFI_PAGES_TO_SIZE(gRelocSizePages) - 1
  127. -                                  );
  128. -                        Print(L"Exiting in 30 secs ...\n");
  129. -                        gBS->Stall(30 * 1000000);
  130. -                       
  131. -                        return EFI_OUT_OF_RESOURCES;
  132. -                }
  133. -               
  134.                 // store min and max mem - can be used later to determine start and end of kernel boot image
  135.                 if (gMinAllocatedAddr == 0 || *Memory < gMinAllocatedAddr) gMinAllocatedAddr = *Memory;
  136.                 if (UpperAddr > gMaxAllocatedAddr) gMaxAllocatedAddr = UpperAddr;
  137.                
  138. -                // give it from our allocated block
  139. -                *Memory += gRelocBase;
  140. -                //Status = gStoredAllocatePages(Type, MemoryType, NumberOfPages, Memory);
  141. -//                FromRelocBlock = TRUE;
  142. -                Status = EFI_SUCCESS;
  143. +                Status = gStoredAllocatePages(Type, MemoryType, NumberOfPages, Memory);
  144. +//                FromRelocBlock = FALSE;
  145. +               
  146. +        } else if (gHibernateWake && Type == AllocateAnyPages && MemoryType == EfiLoaderData) {
  147. +                // called from boot.efi during hibernate wake
  148. +                // first such allocation is for hibernate image
  149. +                Status = gStoredAllocatePages(Type, MemoryType, NumberOfPages, Memory);
  150. +                if (gHibernateImageAddress == 0 && Status == EFI_SUCCESS) {
  151. +                        gHibernateImageAddress = *Memory;
  152. +                }
  153.                
  154.         } else {
  155.                 // default page allocation
  156.                 Status = gStoredAllocatePages(Type, MemoryType, NumberOfPages, Memory);
  157. +               
  158.         }

  159.         //DBG("AllocatePages(%s, %s, %x, %lx/%lx) = %r %c\n",
  160. @@ -344,7 +249,7 @@
  161.         DBGnvr("GetMemoryMap: %p = %r\n", MemoryMap, Status);
  162.         if (Status == EFI_SUCCESS) {
  163.                 FixMemMap(*MemoryMapSize, MemoryMap, *DescriptorSize, *DescriptorVersion);
  164. -                //ShrinkMemMap(MemoryMapSize, MemoryMap, *DescriptorSize, *DescriptorVersion);
  165. +                ShrinkMemMap(MemoryMapSize, MemoryMap, *DescriptorSize, *DescriptorVersion);
  166.                 //PrintMemMap(*MemoryMapSize, MemoryMap, *DescriptorSize, *DescriptorVersion);
  167.                
  168.                 // remember last/final memmap
  169. @@ -368,9 +273,18 @@
  170. {
  171.         EFI_STATUS                                        Status;
  172.         UINTN                                                 NewMapKey;
  173. -        UINTN                                                SlideAddr = 0;
  174. -        VOID                                                *MachOImage = NULL;
  175. -       
  176. +        //UINTN                                                SlideAddr = 0;
  177. +        //VOID                                                *MachOImage = NULL;
  178. +    IOHibernateImageHeader      *ImageHeader = NULL;
  179. +       
  180. +    // we need hibernate image address for wake
  181. +        if (gHibernateWake && gHibernateImageAddress == 0) {
  182. +        Print(L"OsxAptioFix error: Doing hibernate wake, but did not find hibernate image address.");
  183. +                Print(L"... waiting 5 secs ...\n");
  184. +        gBS->Stall(5000000);
  185. +        return EFI_INVALID_PARAMETER;
  186. +    }
  187. +   
  188.         // for  tests: we can just return EFI_SUCCESS and continue using Print for debug.
  189. //        Status = EFI_SUCCESS;
  190.         //Print(L"ExitBootServices()\n");
  191. @@ -402,17 +316,77 @@
  192.                 }
  193.                
  194.         }
  195. -       
  196. +   
  197.      if (EFI_ERROR(Status)) {
  198.                 Print(L"... waiting 10 secs ...\n");
  199.                 gBS->Stall(10*1000000);
  200.          return Status;
  201.      }
  202.        
  203. -        DBG("ExitBootServices: gMinAllocatedAddr: %lx, gMaxAllocatedAddr: %lx\n", gMinAllocatedAddr, gMaxAllocatedAddr);
  204. -        MachOImage = (VOID*)(UINTN)(gRelocBase + 0x200000);
  205. -        KernelEntryFromMachOPatchJump(MachOImage, SlideAddr);
  206. +    if (!gHibernateWake) {
  207. +        // normal boot
  208. +        DBG("ExitBootServices: gMinAllocatedAddr: %lx, gMaxAllocatedAddr: %lx\n", gMinAllocatedAddr, gMaxAllocatedAddr);
  209. +        
  210. +        //SlideAddr = gMinAllocatedAddr - 0x100000;
  211. +        //MachOImage = (VOID*)(UINTN)(SlideAddr + 0x200000);
  212. +        //KernelEntryFromMachOPatchJump(MachOImage, SlideAddr);
  213. +        
  214. +    } else {
  215. +        // hibernate wake
  216. +        
  217. +        // at this stage HIB section is not yet copied from sleep image to it's
  218. +        // proper memory destination. so we'll patch entry point in sleep image.
  219. +        ImageHeader = (IOHibernateImageHeader *)(UINTN)gHibernateImageAddress;
  220. +        KernelEntryPatchJump( ((UINT32)(UINTN)&(ImageHeader->fileExtentMap[0])) + ImageHeader->fileExtentMapSize + ImageHeader->restore1CodeOffset );
  221. +    }
  222. +       
  223. +        return Status;
  224. +}
  225. +
  226. +
  227. +/** gRT->SetVirtualAddressMap override:
  228. + * Fixes virtualizing of RT services.
  229. + */
  230. +EFI_STATUS EFIAPI
  231. +OvrSetVirtualAddressMap(
  232. +        IN UINTN                        MemoryMapSize,
  233. +        IN UINTN                        DescriptorSize,
  234. +        IN UINT32                        DescriptorVersion,
  235. +        IN EFI_MEMORY_DESCRIPTOR        *VirtualMap
  236. +)
  237. +{
  238. +        EFI_STATUS                        Status;
  239. +    UINT32              EfiSystemTable;
  240. +       
  241. +        DBG("->SetVirtualAddressMap(%d, %d, 0x%x, %p) START ...\n", MemoryMapSize, DescriptorSize, DescriptorVersion, VirtualMap);
  242. +        DBGnvr("->SetVirtualAddressMap(%d, %d, 0x%x, %p) START ...\n", MemoryMapSize, DescriptorSize, DescriptorVersion, VirtualMap);
  243.        
  244. +        // restore origs
  245. +        gRT->Hdr.CRC32 = OrgRTCRC32;
  246. +        gRT->SetVirtualAddressMap = gStoredSetVirtualAddressMap;
  247. +       
  248. +        // Protect RT data areas from relocation by marking then MemMapIO
  249. +        ProtectRtDataFromRelocation(MemoryMapSize, DescriptorSize, DescriptorVersion, VirtualMap);
  250. +       
  251. +    // Remember physical sys table addr
  252. +    EfiSystemTable = (UINT32)(UINTN)gST;
  253. +   
  254. +        // virtualize RT services with all needed fixes
  255. +        Status = ExecSetVirtualAddressesToMemMap(MemoryMapSize, DescriptorSize, DescriptorVersion, VirtualMap);
  256. +       
  257. +    CopyEfiSysTableToSeparateRtDataArea(&EfiSystemTable);
  258. +   
  259. +        // we will defragment RT data and code that is left unprotected.
  260. +    // this will also mark those as AcpiNVS and by this protect it
  261. +    // from boot.efi relocation and zeroing
  262. +        DefragmentRuntimeServices(MemoryMapSize,
  263. +                              DescriptorSize,
  264. +                              DescriptorVersion,
  265. +                              VirtualMap,
  266. +                              NULL,
  267. +                              gHibernateWake ? FALSE : TRUE
  268. +                              );
  269. +   
  270.         return Status;
  271. }

  272. @@ -425,17 +399,15 @@
  273.        
  274.         DBGnvr("\nBACK FROM KERNEL: BootArgs = %x, KernelEntry: %x, Kernel called in %s bit mode\n", bootArgs, AsmKernelEntry, (ModeX64 ? L"64" : L"32"));
  275.        
  276. -        bootArgs = FixBootingWithRelocBlock(bootArgs, ModeX64);
  277. +        if (!gHibernateWake) {
  278. +        bootArgs = FixBootingWithoutRelocBlock(bootArgs, ModeX64);
  279. +        } else {
  280. +                bootArgs = FixHibernateWakeWithoutRelocBlock(bootArgs, ModeX64);
  281. +        }
  282.        
  283.         DBGnvr("BACK TO KERNEL: BootArgs = %x, KImgStartReloc = %x, KImgStart = %x, KImgSize = %x\n",
  284.                    bootArgs, AsmKernelImageStartReloc, AsmKernelImageStart, AsmKernelImageSize);
  285.        
  286. -        // debug for jumping back to kernel
  287. -        // put HLT to kernel entry point to stop there
  288. -        //SetMem((VOID*)(UINTN)(AsmKernelEntry + gRelocBase), 1, 0xF4);
  289. -        // put 0 to kernel entry point to restart
  290. -        //SetMem64((VOID*)(UINTN)(AsmKernelEntry + gRelocBase), 1, 0);
  291. -       
  292.         return bootArgs;
  293. }

  294. @@ -448,7 +420,12 @@
  295.    * If started with ImgContext->JumpBuffer, then it will return with LongJump().
  296.    */
  297. EFI_STATUS
  298. -RunImageWithOverrides(IN EFI_HANDLE ImageHandle, OUT UINTN *ExitDataSize, OUT CHAR16 **ExitData  OPTIONAL)
  299. +RunImageWithOverrides(
  300. +                      IN EFI_HANDLE ImageHandle,
  301. +                      IN EFI_LOADED_IMAGE_PROTOCOL        *Image,
  302. +                      OUT UINTN *ExitDataSize,
  303. +                      OUT CHAR16 **ExitData  OPTIONAL
  304. +                      )
  305. {
  306.         EFI_STATUS                                        Status;
  307.        
  308. @@ -466,12 +443,6 @@
  309.                 return Status;
  310.         }
  311.        
  312. -        // allocate block for kernel image relocation
  313. -        Status = AllocateRelocBlock();
  314. -        if (EFI_ERROR(Status)) {
  315. -                return Status;
  316. -        }
  317. -       
  318.         // clear monitoring vars
  319.         gMinAllocatedAddr = 0;
  320.         gMaxAllocatedAddr = 0;
  321. @@ -491,6 +462,17 @@
  322.         gBS->Hdr.CRC32 = 0;
  323.         gBS->CalculateCrc32(gBS, gBS->Hdr.HeaderSize, &gBS->Hdr.CRC32);
  324.        
  325. +    OrgRTCRC32 = gRT->Hdr.CRC32;
  326. +    gStoredSetVirtualAddressMap = gRT->SetVirtualAddressMap;
  327. +    gRT->SetVirtualAddressMap = OvrSetVirtualAddressMap;
  328. +    gRT->Hdr.CRC32 = 0;
  329. +    gBS->CalculateCrc32(gRT, gRT->Hdr.HeaderSize, &gRT->Hdr.CRC32);
  330. +   
  331. +    // force boot.efi to use our copy od system table
  332. +        DBG("StartImage: orig sys table: %p\n", Image->SystemTable);
  333. +    Image->SystemTable = (EFI_SYSTEM_TABLE *)(UINTN)gSysTableRtArea;
  334. +        DBG("StartImage: new sys table: %p\n", Image->SystemTable);
  335. +       
  336.         // run image
  337.         Status = gStartImage(ImageHandle, ExitDataSize, ExitData);
  338.        
  339. @@ -506,8 +488,8 @@
  340.         gBS->Hdr.CRC32 = 0;
  341.         gBS->CalculateCrc32(gBS, gBS->Hdr.HeaderSize, &gBS->Hdr.CRC32);
  342.        
  343. -        // release reloc block
  344. -        FreeRelocBlock();
  345. +    gRT->SetVirtualAddressMap = gStoredSetVirtualAddressMap;
  346. +    gBS->CalculateCrc32(gRT, gRT->Hdr.HeaderSize, &gRT->Hdr.CRC32);
  347.        
  348.         return Status;
  349. }
  350. @@ -548,20 +530,19 @@
  351.                 DBG("CloseProtocol error: %r\n", Status);
  352.         }

  353. -        //the presence of the variable means HibernateWake
  354. -        //if the wake is canceled then the variable must be deleted
  355. -        Status = gRT->GetVariable(L"boot-switch-vars", &gEfiAppleBootGuid, NULL, &Size, NULL);
  356. -        gHibernateWake = (Status == EFI_BUFFER_TOO_SMALL);
  357. -       
  358.         // check if this is boot.efi
  359. -        if (StrStriBasic(FilePathText, L"boot.efi") && !gHibernateWake) {
  360. +        if (StrStriBasic(FilePathText, L"boot.efi")) {
  361. +                //the presence of the variable means HibernateWake
  362. +                //if the wake is canceled then the variable must be deleted
  363. +                Status = gRT->GetVariable(L"boot-switch-vars", &gEfiAppleBootGuid, NULL, &Size, NULL);
  364. +                gHibernateWake = (Status == EFI_BUFFER_TOO_SMALL);
  365.                
  366. -                Print(L"OsxAptioFixDrv: Starting overrides for %s\nUsing reloc block: yes, hibernate wake: %s \n",
  367. +                Print(L"OsxAptioFix2Drv: Starting overrides for %s\nUsing reloc block: no, hibernate wake: %s \n",
  368.                           FilePathText, gHibernateWake ? L"yes" : L"no");
  369.                 //gBS->Stall(2000000);

  370.                 // run with our overrides
  371. -                Status = RunImageWithOverrides(ImageHandle, ExitDataSize, ExitData);
  372. +                Status = RunImageWithOverrides(ImageHandle, Image, ExitDataSize, ExitData);
  373.                
  374.         } else {
  375.                 // call original function to do the job
复制代码

Rank: 1

UID
670903
帖子
101
PB币
4
贡献
0
技术
0
活跃
329
5F
发表于 2016-8-7 15:29:31 IP属地福建 |只看该作者
我也卡在这里~~~~~~~~

Rank: 2Rank: 2

UID
4755110
帖子
240
PB币
14
贡献
0
技术
0
活跃
189
6F
发表于 2016-8-7 15:52:17 IP属地广东 |只看该作者
求显示器型号
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛