{"id":271558,"date":"2016-01-04T04:07:02","date_gmt":"2016-01-04T01:07:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=271558"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=271558","title":{"rendered":"\u041f\u0438\u0448\u0435\u043c DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0441 BIOS Setup \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 UEFI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439"},"content":{"rendered":"<p>       <img decoding=\"async\" align=\"left\" src=\"https:\/\/habrastorage.org\/files\/2a8\/8f3\/b41\/2a88f3b415b54f1ea653f2b5aad91306.png\"\/> \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/273497\/\">\u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e SecureBoot<\/a> \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 UEFI \u0447\u0435\u0440\u0435\u0437 BIOS Setup, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u044b\u0440\u0443\u0447\u0438\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442. \u042d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e\u043d\u043e \u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0430\u0445, \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0441\u0435\u0432\u0434\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u0443, \u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u2014 \u043e\u043d\u0430 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435, \u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0435\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0438\u0437 \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0435 \u043d\u0430\u0434\u043e.<br \/>  \u0412\u043e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438\u043c \u043c\u044b \u0438 \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438 \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u0432\u043e\u0434 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432 UEFI, \u043a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 \u0441\u0440\u0435\u0434\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0444\u0430\u0439\u043b \u0438\u0437 UEFI \u0438 \u043a\u0430\u043a \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430 \u0421 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0441\u0435 \u0435\u0449\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0436\u0434\u0443 \u0432\u0430\u0441 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h4><b>\u041e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/b><\/h4>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f UEFI, \u0441\u0442\u043e\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439 \u2014 \u0434\u0435\u043b\u043e \u043e\u043f\u0430\u0441\u043d\u043e\u0435, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u00ab\u043a\u0438\u0440\u043f\u0438\u0447\u0443\u00bb, \u0430 \u0432 \u0441\u0430\u043c\u044b\u0445 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u2014 \u043a \u0432\u044b\u0445\u043e\u0434\u0443 \u0438\u0437 \u0441\u0442\u0440\u043e\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u044e: \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u044b \u0442\u0443\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u0442\u0435, \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043a, \u044f \u043d\u0435 \u043d\u0435\u0441\u0443 \u0438 \u043d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0435\u0441\u0442\u0438 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u043f\u043e\u0442\u0435\u0440\u044e \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0438\u043b\u0438 \u043f\u043b\u0430\u0442\u044b. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e SPI flash \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u044f. <br \/>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430, \u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438 \u043e\u0442\u043b\u0430\u0434\u0438\u0442\u044c <abbr title=\"Driver Execution Environment\">DXE<\/abbr>-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e <a href=\"http:\/\/www.tianocore.org\/ovmf\/\">OVMF<\/a>, VmWare Workstation 12 \u0438\u043b\u0438 \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 UEFI \u043d\u0430 \u0432\u0430\u0448 \u0432\u044b\u0431\u043e\u0440.<\/p>\n<h4><b>\u0427\u0442\u043e \u0442\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440<\/b><\/h4>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u043d\u0430\u0448\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441\u043e \u0432\u0441\u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e UEFI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 BIOS Setup, \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448, \u043d\u0430\u0439\u0442\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u043d\u0430 \u043d\u0435\u0435. \u0422\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u0442\u0430\u0442\u0443\u0441\u0430. \u0422.\u043a. \u0434\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 UEFI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u0430\u043c\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e \u0438\u0445 \u0441\u043d\u044f\u0442\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u0431\u044b\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442, \u0432\u0435\u0434\u044c \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0432\u044b\u0442\u0435\u0441\u043d\u044f\u044e\u0449\u0435\u0439 \u043c\u043d\u043e\u0433\u043e\u0437\u0430\u0434\u0430\u0447\u043d\u043e\u0441\u0442\u0438 \u0432 UEFI \u043f\u043e\u043a\u0430 \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440. <br \/>  \u0421\u0445\u0435\u043c\u0430 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:<br \/>  <b>0<\/b>. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0432\u0432\u043e\u0434\u0430 (\u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448) \u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430 (\u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0441 \u0447\u0435\u0433\u043e \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b).<br \/>  <b>1<\/b>. \u0412\u0435\u0448\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 <i>LCtrl + LAlt + F12<\/i> (\u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430 \u0432\u0430\u0448 \u0432\u043a\u0443\u0441) \u043d\u0430 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438.<br \/>  <b>2<\/b>. \u0412 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432\u0441\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0434\u0435\u043b\u0430\u0435\u043c \u0441 \u043d\u0438\u0445 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 <abbr title=\"Portable Network Graphics\">PNG<\/abbr> (\u0442.\u043a. UEFI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0446\u0432\u0435\u0442\u043e\u0432, \u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442 \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 BMP). <br \/>  <b>3<\/b>. \u0412 \u0442\u043e\u043c \u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u043e\u043f\u0430\u0432\u0448\u0443\u044e\u0441\u044f \u0424\u0421 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0442\u0443\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<br \/>  \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043d\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0424\u0421, \u0430, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0442\u043e\u043b\u044c\u043a\u043e USB-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 <abbr title=\"EFI System Partition\">ESP<\/abbr>, \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e. <\/p>\n<h4><b>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c SDK<\/b><\/h4>\n<p>  \u0414\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 UEFI \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 SDK \u2014 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0439 <a href=\"http:\/\/www.tianocore.org\/edk2\/\">EDK2<\/a> \u043e\u0442 UEFI Forum \u0438 <a href=\"http:\/\/sourceforge.net\/projects\/gnu-efi\/\">GNU-EFI<\/a> \u043e\u0442 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0441\u0442\u0430\u0440\u043e\u043c \u043a\u043e\u0434\u0435 Intel. \u041e\u0431\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e\u0442, \u0447\u0442\u043e \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u043d\u0430 C \u0438\/\u0438\u043b\u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0447\u0438\u0441\u0442\u044b\u043c C. <br \/>  \u041d\u0435 \u043c\u043d\u0435 \u0441\u0443\u0434\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 SDK \u043b\u0443\u0447\u0448\u0435, \u043d\u043e \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c EDK2, \u0442.\u043a. \u043e\u043d \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0439, \u0438 \u043d\u043e\u0432\u044b\u0435 \u0444\u0438\u0447\u0438 (\u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0445 \u0431\u0430\u0433\u043e\u0432) \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043d\u0435\u043c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043f\u043b\u044e\u0441 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432\u0441\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043c\u043d\u0435 <abbr title=\"Independent BIOS Vendor\">IBV<\/abbr> \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430.<br \/>  EDK2 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0438 \u0432 \u0435\u0433\u043e trunk \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u043e 2-3 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0432 \u0434\u0435\u043d\u044c, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0437\u0430 \u0441\u0430\u043c\u044b\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c\u0438 \u0432\u0435\u044f\u043d\u0438\u044f\u043c\u0438 \u043d\u0435 \u0433\u043e\u043d\u0438\u043c\u0441\u044f (\u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u043d\u0438 \u0435\u0449\u0435 \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u0440\u0435\u0437 EDK2, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"http:\/\/www.tianocore.org\/udk\/udk2015\/\">UDK2015<\/a>. <br \/>  \u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430\u043c\u0438, EDK2 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 make-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b TXT (\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f), DEC, DSC \u0438 FDF (\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430) \u0438 INF (\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430), \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0438\u0445 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u043e \u0445\u043e\u0434\u0443 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u044c EDK2 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c HelloWorld, \u0447\u0435\u043c \u0438 \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f, \u0435\u0441\u043b\u0438 \u0436\u0435 \u0432\u0430\u043c \u043d\u0435 \u0442\u0435\u0440\u043f\u0438\u0442\u0441\u044f \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u2014 <a href=\"https:\/\/github.com\/tianocore\/tianocore.github.io\/wiki\/EDK-II-Specifications\">\u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a>.<\/p>\n<h4><b>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u041f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 C \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 \u041f\u041e \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c Windows \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Visual Studio 2013 Express for Windows Desktop, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c Linux \u0438 OSX \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f GCC 4.4-4.9 \u0438 NASM.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/sourceforge.net\/projects\/edk2\/files\/UDK2015_Releases\/UDK2015\/UDK2015.Complete.MyWorkSpace.zip\/download\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c UDK2015<\/a>, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <i>UDK2015.MyWorkSpace.zip<\/i> \u0442\u0443\u0434\u0430, \u0433\u0434\u0435 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u043e \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 (\u0434\u0430 \u0445\u043e\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b \u0438\u043b\u0438 \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u044e\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e), \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 <i>BaseTools(Windows).zip<\/i> \u0438\u043b\u0438 <i>BaseTools(Unix.zip)<\/i> \u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <i>MyWorkSpace<\/i>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 <i>UDK2015<\/i>.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <i>UDK2015<\/i> \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 <i>edksetup.bat<\/i> (\u0438\u043b\u0438 <i>.sh<\/i>), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 \u0432 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <i>Conf <\/i>\u043d\u0430\u0431\u043e\u0440 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c <i>tools_def.txt<\/i> \u0438 <i>target.txt<\/i>.<br \/>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u0432 \u043d\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0443\u0442\u044f\u043c\u0438 \u0434\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u043c\u0443 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u0432 C \u0438 <abbr title=\"ACPI Source Language\">ASL<\/abbr>, \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043e\u0432, \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0438 \u0442.\u043f. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u0430\u043c \u043f\u0443\u0442\u0438 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 (\u0442.\u043d. <i>ToolChain<\/i>), \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u043b\u0438 \u043c\u043e\u0435\u0433\u043e \u0441\u043e\u0432\u0435\u0442\u0430, \u0442\u043e \u0432\u0430\u043c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u0438\u0431\u043e VS2013 (\u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 32-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u0430\u044f Windows), \u043b\u0438\u0431\u043e VS2013x86 (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 64-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0439 Windows), \u043b\u0438\u0431\u043e GCC44 |\u2026 | GCC49 (\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 GCC, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0442\u043e\u0442 \u043b\u044e\u0431\u0435\u0437\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 <i>gcc &#8212;version<\/i>).<br \/>  \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432 \u043d\u0435\u043c \u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">ACTIVE_PLATFROM = MdeModulePkg\/MdeModulePkg.dsc # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0430\u043a\u0435\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 TARGET = RELEASE  # \u0420\u0435\u043b\u0438\u0437\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f TARGET_ARCH = X64 # DXE \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d 64-\u0431\u0438\u0442\u043d\u0430\u044f, \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u0438 \u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b TOOL_CHAN_TAG = VS2013x86 # | VS2013 | GCC44 | ... | GCC49 | YOUR_FANCY_TOOLCHAIN, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 <\/code><\/pre>\n<p>\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0432 UDK2015 \u0438 \u0432 Linux\/OSX \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443: <\/p>\n<pre><code class=\"bash\">. edksetup.sh BaseTools <\/code><\/pre>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 Windows \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <i>edksetup.bat<\/i> \u0431\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <i>build<\/i>, \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u043e\u0434\u0435 <\/p>\n<pre><code class=\"bash\">- Done - Build end time: ... Build total time: ... <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u043c\u0435\u0441\u0442\u043e <i>Done<\/i> \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 <i>Failed<\/i>, \u0437\u043d\u0430\u0447\u0438\u0442 \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u042f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0432\u044b\u0448\u0435\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 VS2013x86 \u0432 Windows \u0438 GCC48 \u0432 Xubuntu 14.04.3 \u2014 <abbr title=\"\u0423 \u041c\u0435\u043d\u044f \u0412\u0441\u0435 \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442\">\u0423\u041c\u0412\u0420<\/abbr>.<\/p>\n<h4><b>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/b><\/h4>\n<p>  \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0432 EDK2 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0430 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0442.\u043d <i>Package<\/i>, \u0442.\u0435. \u043f\u0430\u043a\u0435\u0442\u0430. \u0412 \u043f\u0430\u043a\u0435\u0442, \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u0445\u043e\u0434\u044f\u0442 \u0435\u0449\u0435 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043d\u0430\u0431\u043e\u0440\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e. \u0421\u0434\u0435\u043b\u0430\u043d\u043e \u044d\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u0438 GUID&#8217;\u0430\u043c. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c MdeModulePkg, \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043e\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438 \u0436\u0435\u043b\u0435\u0437\u0430, \u0438 \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432 \u043d\u0435\u043c, \u043e\u043d \u043f\u043e\u0447\u0442\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u0445 UEFI 2.1 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u044b\u0445. \u041c\u0438\u043d\u0443\u0441\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 \u043d\u0435\u043c (\u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, DebugLib, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430) \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0438, \u0438 \u0438\u0445 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0430\u043c\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c.<br \/>  \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f INF-\u0444\u0430\u0439\u043b \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0438 \u0444\u0430\u0439\u043b\u044b \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0438 \u0434\u043e \u044d\u0442\u043e\u0433\u043e INF-\u0444\u0430\u0439\u043b\u0430 \u0432 DSC-\u0444\u0430\u0439\u043b \u043f\u0430\u043a\u0435\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u0437\u043d\u0430\u043b\u0430, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 INF-\u0444\u0430\u0439\u043b \u0435\u0441\u0442\u044c.<br \/>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u043e\u043d\u0446\u0430: \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b <i>UDK2015\/MdeModulePkg\/MdeModulePkg.dsc<\/i> \u0438 \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0434\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 [Components] (\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u2014 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435). \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0443, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">[Components]   MdeModulePkg\/Application\/HelloWorld\/HelloWorld.inf   MdeModulePkg\/Application\/MemoryProfileInfo\/MemoryProfileInfo.inf   ... <\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0443\u0434\u0430 \u0441\u0432\u043e\u0439 \u0431\u0443\u0434\u0443\u0449\u0438\u0439 INF-\u0444\u0430\u0439\u043b \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c \u0434\u043e \u043d\u0435\u0433\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e <i>UDK2015<\/i>. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u0440\u044f\u043c\u043e \u0432 <i>MdeModulePkg<\/i> \u043f\u0430\u043f\u043a\u0443 <i>CrScreenshotDxe<\/i>, \u0430 \u0441\u0430\u043c INF-\u0444\u0430\u0439\u043b \u043d\u0430\u0437\u0432\u0430\u0442\u044c <i>CrScreenshotDxe.inf<\/i>. \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c, Cr \u2014 \u044d\u0442\u043e \u043e\u0442 \u00abCodeRush\u00bb, \u0430 \u0430\u0432\u0442\u043e\u0440 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0441\u0430\u043c\u0430 \u0441\u043a\u0440\u043e\u043c\u043d\u043e\u0441\u0442\u044c. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435:<\/p>\n<pre><code class=\"bash\">[Components]   MdeModulePkg\/CrScreenshotDxe\/CrScreenshotDxe.inf   MdeModulePkg\/Application\/HelloWorld\/HelloWorld.inf   MdeModulePkg\/Application\/MemoryProfileInfo\/MemoryProfileInfo.inf   ... <\/code><\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c DSC-\u0444\u0430\u0439\u043b, \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u044b \u0435\u0433\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0430\u043c INF-\u0444\u0430\u0439\u043b:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">[Defines]                                               # \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f   INF_VERSION    = 0x00010005                           # \u0412\u0435\u0440\u0441\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 1.5   BASE_NAME      = CrScreenshotDxe                      # \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430   FILE_GUID      = cab058df-e938-4f85-8978-1f7e6aabdb96 # GUID \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430   MODULE_TYPE    = DXE_DRIVER                           # \u0422\u0438\u043f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430   VERSION_STRING = 1.0                                  # \u0412\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430   ENTRY_POINT    = CrScreenshotDxeEntry                 # \u0418\u043c\u044f \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430  [Sources.common]                     # \u0424\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438, common - \u043e\u0431\u0449\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0430\u0440\u0437\u0438\u0442\u0435\u043a\u0442\u0443\u0440    CrScreenshotDxe.c                  # \u041a\u043e\u0434 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430   #...                               # \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0435, \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0432 PNG, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443  [Packages]                           # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b    MdePkg\/MdePkg.dec                  # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0430\u043a\u0435\u0442, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 UEFI   MdeModulePkg\/MdeModulePkg.dec      # \u0412\u0442\u043e\u0440\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0430\u043a\u0435\u0442, \u043d\u0443\u0436\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430\u043c \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c  [LibraryClasses]                     # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438   UefiBootServicesTableLib           # \u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a UEFI Boot Services \u0447\u0435\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c gBS   UefiRuntimeServicesTableLib        # \u041d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a UEFI Runtime services \u0447\u0435\u0440\u0435\u0437 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c gRT   UefiDriverEntryPoint               # \u0422\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 UEFI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u0431\u0435\u0437 \u043d\u0435\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0430 \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b   DebugLib                           # \u0414\u043b\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u0430 DEBUG   PrintLib                           # \u0414\u043b\u044f UnicodeSPrint, \u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0430 snprintf  [Protocols]                          # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b   gEfiGraphicsOutputProtocolGuid     # \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438   gEfiSimpleTextInputExProtocolGuid  # \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c\u0443 \u0432\u0432\u043e\u0434\u0443   gEfiSimpleFileSystemProtocolGuid   # \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c  [Depex]                              # \u0417\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, \u043f\u043e\u043a\u0430 \u044d\u0442\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f   gEfiGraphicsOutputProtocolGuid AND # \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0424\u0421 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d, \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0435\u0433\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435   gEfiSimpleTextInputExProtocolGuid  #  <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u0432\u044b\u0448\u0435 \u0444\u0430\u0439\u043b <i>CrScreenshotDxe.\u0441<\/i>:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421 \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &lt;Uefi.h&gt; #include &lt;Library\/DebugLib.h&gt; #include &lt;Library\/PrintLib.h&gt; #include &lt;Library\/UefiDriverEntryPoint.h&gt; #include &lt;Library\/UefiBootServicesTableLib.h&gt; #include &lt;Library\/UefiRuntimeServicesTableLib.h&gt; #include &lt;Protocol\/GraphicsOutput.h&gt; #include &lt;Protocol\/SimpleTextInEx.h&gt; #include &lt;Protocol\/SimpleFileSystem.h&gt;  EFI_STATUS EFIAPI CrScreenshotDxeEntry (     IN EFI_HANDLE         ImageHandle,     IN EFI_SYSTEM_TABLE   *SystemTable     ) {     return EFI_SUCCESS; } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <i>build<\/i>, \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439, \u0438\u043d\u0430\u0447\u0435 \u0432\u044b \u0447\u0442\u043e-\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.<br \/>  \u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0435\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430. \u0421\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 IBV \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b EDK2 \u0432 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e IDE, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0441\u0440\u0435\u0434\u0430 AMI Visual eBIOS \u2014 \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u0432\u0435\u0448\u0435\u043d\u043d\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438 Eclipse, \u0430 Phoenix \u0438 Insyde \u043e\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044e\u0442 \u0438\u043c\u0438 \u0436\u0435 Visual Studio. <br \/>  \u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/github.com\/ionescu007\/VisualUefi\">VisualUefi<\/a> \u0437\u0430 \u0430\u0432\u0442\u043e\u0440\u0441\u0442\u0432\u043e\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u043f\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0410\u043b\u0435\u043a\u0441\u0430 \u0418\u043e\u043d\u0435\u0441\u043a\u0443, \u0438 \u0435\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u0436\u0435 \u043b\u044e\u0431\u0438\u0442\u0435 Visual Studio \u2014 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e, \u0430 \u043c\u044b \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0443\u0433\u0430\u0440\u0430\u0442\u044c \u043f\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u0443, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0434\u0443\u0445 \u0441\u0442\u0430\u0440\u043e\u0439 \u0448\u043a\u043e\u043b\u044b \u0438 \u0432\u0441\u0451 \u0442\u0430\u043a\u043e\u0435.<\/p>\n<h4><b>\u0420\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u043c \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448<\/b><\/h4>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u043f\u0435\u0440\u0435\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL\">SimpleTextInputEx<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d, \u0434\u0430\u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u043a \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440 \u2014 \u0431\u0443\u0444\u0435\u0440 \u0442\u043e \u043e\u0431\u0449\u0438\u0439, \u0435\u0441\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0435\u0440\u0435\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b, \u0432\u044b\u0437\u0432\u0430\u0432 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL#RegisterKeyNotify.28.29\">RegisterKeyNotify<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f <br \/>  \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0448, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u044b \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 callback-\u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438, \u0430 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u0432\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u043d\u0430 \u0421<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">EFI_STATUS EFIAPI CrScreenshotDxeEntry (     IN EFI_HANDLE         ImageHandle,     IN EFI_SYSTEM_TABLE   *SystemTable     ) {     EFI_STATUS   Status;     EFI_KEY_DATA KeyStroke;     UINTN        HandleCount;     EFI_HANDLE   *HandleBuffer = NULL;     UINTN        i;          \/\/ Set keystroke to be LCtrl+LAlt+F12     KeyStroke.Key.ScanCode = SCAN_F12;     KeyStroke.Key.UnicodeChar = 0;     KeyStroke.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_LEFT_ALT_PRESSED;     KeyStroke.KeyState.KeyToggleState = 0;          \/\/ Locate all SimpleTextInEx protocols     Status = gBS-&gt;LocateHandleBuffer(ByProtocol, &gEfiSimpleTextInputExProtocolGuid, NULL, &HandleCount, &HandleBuffer);     if (EFI_ERROR (Status)) {         DEBUG((-1, &quot;CrScreenshotDxeEntry: gBS-&gt;LocateHandleBuffer returned %r\\n&quot;, Status));         return EFI_UNSUPPORTED;     }          \/\/ For each instance     for (i = 0; i &lt; HandleCount; i++) {         EFI_HANDLE Handle;         EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleTextInEx;                  \/\/ Get protocol handle         Status = gBS-&gt;HandleProtocol (HandleBuffer[i], &gEfiSimpleTextInputExProtocolGuid, (VOID **) &SimpleTextInEx);         if (EFI_ERROR (Status)) {            DEBUG((-1, &quot;CrScreenshotDxeEntry: gBS-&gt;HandleProtocol[%d] returned %r\\n&quot;, i, Status));            continue;         }                  \/\/ Register key notification function         Status = SimpleTextInEx-&gt;RegisterKeyNotify(                 SimpleTextInEx,                  &KeyStroke,                  TakeScreenshot,                  &Handle);         if (EFI_ERROR (Status)) {             DEBUG((-1, &quot;CrScreenshotDxeEntry: SimpleTextInEx-&gt;RegisterKeyNotify[%d] returned %r\\n&quot;, i, Status));         }     }          \/\/ Free memory used for handle buffer     if (HandleBuffer)         gBS-&gt;FreePool(HandleBuffer);      \/\/ Show driver loaded     ShowStatus(0xFF, 0xFF, 0xFF); \/\/ White          return EFI_SUCCESS; } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <i>TakeScreenshot<\/i> \u0438 <i>ShowStatus<\/i>, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0438\u0436\u0435.<\/p>\n<h4><b>\u0418\u0449\u0435\u043c \u0424\u0421 \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u043f\u0438\u0448\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b<\/b><\/h4>\n<p>  \u041f\u0440\u0435\u0436\u0434\u0435, \u0447\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0438 \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u0441 \u043d\u0438\u0445 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b, \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u044d\u0442\u0438 \u0441\u0430\u043c\u044b\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043a\u0443\u0434\u0430-\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_SIMPLE_FILE_SYSTEM_PROTOCOL\">SimpleFileSystem<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c PartitionDxe \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u043c\u0430, \u0424\u0421 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0424\u0421 \u2014 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e FAT12\/16\/32 (\u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u043e\u043b\u044c\u043a\u043e FAT32), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443 UEFI \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f ESP. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u0424\u0421 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u2014 \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u0439 \u0444\u0430\u0439\u043b \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c, \u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u2014 \u043d\u0430 \u044d\u0442\u0443 \u0424\u0421 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c. \u0420\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u0441\u0430\u043c\u043e\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435, \u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u043f\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u043d\u0430 \u0421<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">EFI_STATUS EFIAPI FindWritableFs (     OUT EFI_FILE_PROTOCOL **WritableFs     ) {     EFI_HANDLE *HandleBuffer = NULL;     UINTN      HandleCount;     UINTN      i;          \/\/ Locate all the simple file system devices in the system     EFI_STATUS Status = gBS-&gt;LocateHandleBuffer(ByProtocol, &gEfiSimpleFileSystemProtocolGuid, NULL, &HandleCount, &HandleBuffer);     if (!EFI_ERROR (Status)) {         EFI_FILE_PROTOCOL *Fs = NULL;         \/\/ For each located volume         for (i = 0; i &lt; HandleCount; i++) {             EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *SimpleFs = NULL;             EFI_FILE_PROTOCOL *File = NULL;                          \/\/ Get protocol pointer for current volume             Status = gBS-&gt;HandleProtocol(HandleBuffer[i], &gEfiSimpleFileSystemProtocolGuid, (VOID **) &SimpleFs);             if (EFI_ERROR (Status)) {                 DEBUG((-1, &quot;FindWritableFs: gBS-&gt;HandleProtocol[%d] returned %r\\n&quot;, i, Status));                 continue;             }                          \/\/ Open the volume             Status = SimpleFs-&gt;OpenVolume(SimpleFs, &Fs);             if (EFI_ERROR (Status)) {                 DEBUG((-1, &quot;FindWritableFs: SimpleFs-&gt;OpenVolume[%d] returned %r\\n&quot;, i, Status));                 continue;             }                          \/\/ Try opening a file for writing             Status = Fs-&gt;Open(Fs, &File, L&quot;crsdtest.fil&quot;, EFI_FILE_MODE_CREATE | EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE, 0);             if (EFI_ERROR (Status)) {                 DEBUG((-1, &quot;FindWritableFs: Fs-&gt;Open[%d] returned %r\\n&quot;, i, Status));                 continue;             }                          \/\/ Writable FS found             Fs-&gt;Delete(File);             *WritableFs = Fs;             Status = EFI_SUCCESS;             break;         }     }          \/\/ Free memory     if (HandleBuffer) {         gBS-&gt;FreePool(HandleBuffer);     }          return Status; } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u042d\u0442\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0435\u0441\u0442\u044c.<\/p>\n<h4><b>\u0418\u0449\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043d\u0438\u043c\u043e\u043a \u0435\u0451 \u044d\u043a\u0440\u0430\u043d\u0430<\/b><\/h4>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0432, \u0447\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0435\u0441\u0442\u044c \u043d\u0430 \u0447\u0442\u043e, \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0438\u0445 \u0441\u043d\u044f\u0442\u0438\u0435\u043c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_GRAPHICS_OUTPUT_PROTOCOL\">GOP<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442 GOP-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b \u0438 VideoBIOS&#8217;\u044b (\u0442\u043e\u0447\u043d\u0435\u0435, \u043d\u0435 \u0441\u0430\u043c VBIOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043d\u0438 \u043f\u0440\u043e \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 ConSplitter, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 VBIOS \u0438 UEFI) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439. \u0423 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0442\u043e\u043a\u043e\u043b\u0430 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_GRAPHICS_OUTPUT_PROTOCOL#Blt.28.29\">Blt<\/a> \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u0444\u0440\u0435\u0439\u043c\u0431\u0443\u0444\u0444\u0435\u0440\u0430 \u0438 \u0432 \u043d\u0435\u0433\u043e, \u043f\u043e\u043a\u0430 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u043e\u0435. \u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 Mode \u0442\u043e\u0433\u043e \u0436\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u043a\u0440\u0430\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0444\u0435\u0440\u0430 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u0441\u043d\u044f\u0442\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u0441\u043e \u0432\u0441\u0435\u0433\u043e \u044d\u043a\u0440\u0430\u043d\u0430, \u0430 \u043d\u0435 \u0441 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0435\u0433\u043e \u0447\u0430\u0441\u0442\u0438. \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442, \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0447\u0435\u0440\u043d\u044b\u0439, \u0438\u0431\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u2014 \u043b\u0438\u0448\u043d\u044f\u044f \u0442\u0440\u0430\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u0424\u0421, \u0447\u0435\u0440\u043d\u044b\u0439 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u0438 \u0432 Paint \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c. \u0417\u0430\u0442\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438\u0437 BGR (\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0435\u0451 \u043e\u0442\u0434\u0430\u0435\u0442 Blt) \u0432 RGB (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0435\u043d \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0443 PNG) \u0438\u043d\u0430\u0447\u0435 \u0446\u0432\u0435\u0442\u0430 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435. \u041a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0435\u0451 \u0432 \u0444\u0430\u0439\u043b \u043d\u0430 \u0442\u043e\u0439 \u0424\u0421, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435. \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 8.3 \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u043c\u0435\u043d\u044c\u0448\u0435 \u0448\u0430\u043d\u0441, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u043f\u0435\u0440\u0435\u043f\u0438\u0448\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043d\u043e\u0432\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u043d\u0430 \u0421<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">EFI_STATUS EFIAPI TakeScreenshot (     IN EFI_KEY_DATA *KeyData     ) {     EFI_FILE_PROTOCOL *Fs = NULL;     EFI_FILE_PROTOCOL *File = NULL;     EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput = NULL;     EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Image = NULL;     UINTN      ImageSize;         \/\/ Size in pixels     UINT8      *PngFile = NULL;     UINTN      PngFileSize;       \/\/ Size in bytes     EFI_STATUS Status;     UINTN      HandleCount;     EFI_HANDLE *HandleBuffer = NULL;     UINT32     ScreenWidth;     UINT32     ScreenHeight;     CHAR16     FileName[8+1+3+1]; \/\/ 0-terminated 8.3 file name     EFI_TIME   Time;     UINTN      i, j;      \/\/ Find writable FS     Status = FindWritableFs(&Fs);     if (EFI_ERROR (Status)) {         DEBUG((-1, &quot;TakeScreenshot: Can't find writable FS\\n&quot;));         ShowStatus(0xFF, 0xFF, 0x00); \/\/ Yellow         return EFI_SUCCESS;     }          \/\/ Locate all instances of GOP     Status = gBS-&gt;LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleBuffer);     if (EFI_ERROR (Status)) {         DEBUG((-1, &quot;ShowStatus: Graphics output protocol not found\\n&quot;));         return EFI_SUCCESS;     }          \/\/ For each GOP instance     for (i = 0; i &lt; HandleCount; i++) {         do { \/\/ Break from do used instead of &quot;goto error&quot;             \/\/ Handle protocol             Status = gBS-&gt;HandleProtocol(HandleBuffer[i], &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);             if (EFI_ERROR (Status)) {                 DEBUG((-1, &quot;ShowStatus: gBS-&gt;HandleProtocol[%d] returned %r\\n&quot;, i, Status));                 break;             }                      \/\/ Set screen width, height and image size in pixels             ScreenWidth  = GraphicsOutput-&gt;Mode-&gt;Info-&gt;HorizontalResolution;             ScreenHeight = GraphicsOutput-&gt;Mode-&gt;Info-&gt;VerticalResolution;             ImageSize = ScreenWidth * ScreenHeight;                          \/\/ Get current time             Status = gRT-&gt;GetTime(&Time, NULL);             if (!EFI_ERROR(Status)) {                 \/\/ Set file name to current day and time                 UnicodeSPrint(FileName, 26, L&quot;%02d%02d%02d%02d.png&quot;, Time.Day, Time.Hour, Time.Minute, Time.Second);             }             else {                 \/\/ Set file name to scrnshot.png                 UnicodeSPrint(FileName, 26, L&quot;scrnshot.png&quot;);             }                          \/\/ Allocate memory for screenshot             Status = gBS-&gt;AllocatePool(EfiBootServicesData, ImageSize * sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL), (VOID **)&Image);             if (EFI_ERROR(Status)) {                 DEBUG((-1, &quot;TakeScreenshot: gBS-&gt;AllocatePool returned %r\\n&quot;, Status));                 break;             }                      \/\/ Take screenshot             Status = GraphicsOutput-&gt;Blt(GraphicsOutput, Image, EfiBltVideoToBltBuffer, 0, 0, 0, 0, ScreenWidth, ScreenHeight, 0);             if (EFI_ERROR(Status)) {                 DEBUG((-1, &quot;TakeScreenshot: GraphicsOutput-&gt;Blt returned %r\\n&quot;, Status));                 break;             }                          \/\/ Check for pitch black image (it means we are using a wrong GOP)             for (j = 0; j &lt; ImageSize; j++) {                 if (Image[j].Red != 0x00 || Image[j].Green != 0x00 || Image[j].Blue != 0x00)                     break;             }             if (j == ImageSize) {                 DEBUG((-1, &quot;TakeScreenshot: GraphicsOutput-&gt;Blt returned pitch black image, skipped\\n&quot;));                 ShowStatus(0x00, 0x00, 0xFF); \/\/ Blue                 break;             }                          \/\/ Open or create output file             Status = Fs-&gt;Open(Fs, &File, FileName, EFI_FILE_MODE_CREATE | EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE, 0);             if (EFI_ERROR (Status)) {                 DEBUG((-1, &quot;TakeScreenshot: Fs-&gt;Open of %s returned %r\\n&quot;, FileName, Status));                 break;             }                          \/\/ Convert BGR to RGBA with Alpha set to 0xFF             for (j = 0; j &lt; ImageSize; j++) {                 UINT8 Temp = Image[j].Blue;                 Image[j].Blue = Image[j].Red;                 Image[j].Red = Temp;                 Image[j].Reserved = 0xFF;             }                      \/\/ Encode raw RGB image to PNG format             j = lodepng_encode32(&PngFile, &PngFileSize, (CONST UINT8*)Image, ScreenWidth, ScreenHeight);             if (j) {                 DEBUG((-1, &quot;TakeScreenshot: lodepng_encode32 returned %d\\n&quot;, j));                 break;             }                              \/\/ Write PNG image into the file and close it             Status = File-&gt;Write(File, &PngFileSize, PngFile);             File-&gt;Close(File);             if (EFI_ERROR(Status)) {                 DEBUG((-1, &quot;TakeScreenshot: File-&gt;Write returned %r\\n&quot;, Status));                 break;             }                          \/\/ Show success             ShowStatus(0x00, 0xFF, 0x00); \/\/ Green         } while(0);                  \/\/ Free memory         if (Image)             gBS-&gt;FreePool(Image);         if (PngFile)             gBS-&gt;FreePool(PngFile);         Image = NULL;         PngFile = NULL;     }          \/\/ Show error     if (EFI_ERROR(Status))         ShowStatus(0xFF, 0x00, 0x00); \/\/ Red          return EFI_SUCCESS; } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 <i>lodepng_encode32<\/i> \u0438 \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u0432\u044b\u0448\u0435 <i>ShowStatus<\/i>, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c.<\/p>\n<h4><b>\u041a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 PNG<\/b><\/h4>\n<p>  \u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u2014 \u043d\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0433\u043e\u0442\u043e\u0432\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f PNG \u043f\u043e \u0438\u043c\u0435\u043d\u0438 <a href=\"http:\/\/lodev.org\/lodepng\/\">lodepng<\/a>. \u041a\u0430\u0447\u0430\u0435\u043c, \u043a\u043b\u0430\u0434\u0435\u043c \u0440\u044f\u0434\u043e\u043c \u0441 \u043d\u0430\u0448\u0438\u043c \u0421-\u0444\u0430\u0439\u043b\u043e\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0432 INF-\u0444\u0430\u0439\u043b \u0432 \u0440\u0430\u0437\u0434\u0435\u043b [Sources.common] \u0441\u0442\u0440\u043e\u043a\u0438 <i>lodepng.h<\/i> \u0438 <i>lodepng.c<\/i>, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0438\u0438\u0438\u2026 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442.\u043a lodepng \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 C \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a \u0432\u043e\u0442 \u0431\u0440\u0430\u0442\u044c \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u041d\u0438\u0447\u0435\u0433\u043e, \u0434\u043e\u043f\u0438\u043b\u0438\u043c, \u043d\u0435 \u0432\u043f\u0435\u0440\u0432\u043e\u0439.<br \/>  \u0412 \u043d\u0430\u0447\u0430\u043b\u043e <i>lodepng.h<\/i> \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"cpp\">#include &lt;Uefi.h&gt;                           \/\/ \u0414\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0432 \u0441\u0440\u0435\u0434\u0435 UEFI #define LODEPNG_NO_COMPILE_DECODER          \/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u0435\u043a\u043e\u0434\u0435\u0440 PNG #define LODEPNG_NO_COMPILE_DISK             \/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0434\u0438\u0441\u043a, \u0442.\u043a. fopen\/fwrite \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 #define LODEPNG_NO_COMPILE_ALLOCATORS       \/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 malloc\/realloc\/free, \u0442.\u043a. \u0438\u0445 \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442 #define LODEPNG_NO_COMPILE_ERROR_TEXT       \/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445  #define LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS \/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 PNG, \u0442.\u043a. \u043d\u0435 \u043d\u0443\u0436\u043d\u044b #if !defined(_MSC_VER)                      \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0442\u0438\u043f size_t \u0434\u043b\u044f GCC, \u0443 MS \u043e\u043d \u0432\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e #define size_t UINTN #endif <\/code><\/pre>\n<p>\u0418 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 <i>#include &lt;string.h&gt;<\/i>, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443 \u043d\u0430\u0441 \u0442\u043e\u0436\u0435 \u043d\u0435\u0442. \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u0442\u0435\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432 \u0442\u0430\u043c \u0442\u0438\u043f size_t, \u043d\u043e \u0440\u0430\u0437 \u0443\u0436 \u043f\u0440\u0438\u043d\u044f\u043b\u0438\u0441\u044c \u043c\u0435\u043d\u044f\u0442\u044c \u2014 \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c.<br \/>  \u0421 <i>lodepng.c<\/i> \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0442.\u043a. \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u0440\u043e\u043c\u0435 size_t, \u0435\u043c\u0443 \u0442\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u044b memset, memcpy, malloc, realloc, free, qsort, \u0430 \u0435\u0449\u0435 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e qsort \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/www.opensource.apple.com\/source\/xnu\/xnu-1456.1.26\/bsd\/kern\/qsort.c\">\u0443\u0442\u0430\u0449\u0438\u0442\u044c \u0443 Apple<\/a>, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0430\u043c\u0438 \u043d\u0430\u0434 <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_BOOT_SERVICES#CopyMem.28.29\">gBS-&gt;CopyMem<\/a>, <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_BOOT_SERVICES#SetMem.28.29\">gBS-&gt;SetMem<\/a>, <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_BOOT_SERVICES#AllocatePool.28.29\">gBS-&gt;AllocatePool<\/a> \u0438 <a href=\"http:\/\/wiki.phoenix.com\/wiki\/index.php\/EFI_BOOT_SERVICES#FreePool.28.29\">gBS-&gt;FreePool<\/a> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 FPU \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 <i>CONST INT32 _fltused = 0;<\/i>, \u0438\u043d\u0430\u0447\u0435 \u043b\u0438\u043d\u043a\u043e\u0432\u0449\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0443\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0435\u0451 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435. \u041f\u0440\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c\u0438 #include&#8217;\u0430\u043c\u0438 \u044f \u0443\u0436\u0435 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044e \u2014 \u0432\u0441\u0435 \u0438 \u0442\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u043d\u043e. <br \/>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0431\u043e\u044e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438 <i>qsort.c<\/i>, \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 INF-\u0444\u0430\u0439\u043b.<\/p>\n<h4><b>\u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441<\/b><\/h4>\n<p>  \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e ShowStatus \u0438 \u043d\u0430\u0448 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0433\u043e\u0442\u043e\u0432. \u041f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u0430 \u043e\u0442 0x00 \u0434\u043e 0xFF \u0432 CPU IO-\u043f\u043e\u0440\u0442 80h, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a POST-\u043a\u043e\u0434\u0435\u0440\u0443, \u043d\u043e \u0435\u0441\u0442\u044c \u043e\u043d \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445, \u0430 \u043d\u0430 \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430\u0445 \u2014 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f. \u041c\u043e\u0436\u043d\u043e \u043f\u0438\u0449\u0430\u0442\u044c \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u043c, \u043d\u043e \u044d\u0442\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445 \u2014 \u0434\u0438\u043a\u043e \u0431\u0435\u0441\u0438\u0442 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0430\u0440\u044b \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u043c\u0438\u0433\u0430\u0442\u044c \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430\u043c\u0438 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0435, \u044d\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f, \u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e \u043f\u0440\u044f\u043c\u043e \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u0443 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u2014 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044f \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0432 \u043b\u0435\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0435\u043b\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u00ab\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u00bb, \u0436\u0435\u043b\u0442\u044b\u0439 \u2014 \u00ab\u0424\u0421 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430\u00bb, \u0441\u0438\u043d\u0438\u0439 \u2014 \u00ab\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0447\u0435\u0440\u043d\u044b\u0439, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430\u00bb, \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u2014 \u00ab\u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430\u00bb \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u2014 \u00ab\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441\u043d\u044f\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u00bb. \u0412\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u0442\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043d\u0443\u0436\u043d\u043e \u043d\u0430 \u0432\u0441\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0430 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043c \u0431\u044b\u043b \u0437\u0430\u0442\u0435\u0440\u0442.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u043d\u0430 \u0421<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">EFI_STATUS EFIAPI ShowStatus (     IN UINT8 Red,      IN UINT8 Green,      IN UINT8 Blue     ) {     \/\/ Determines the size of status square     #define STATUS_SQUARE_SIDE 5      UINTN        HandleCount;     EFI_HANDLE   *HandleBuffer = NULL;     EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput = NULL;     EFI_GRAPHICS_OUTPUT_BLT_PIXEL Square[STATUS_SQUARE_SIDE * STATUS_SQUARE_SIDE];     EFI_GRAPHICS_OUTPUT_BLT_PIXEL Backup[STATUS_SQUARE_SIDE * STATUS_SQUARE_SIDE];     UINTN i;          \/\/ Locate all instances of GOP     EFI_STATUS Status = gBS-&gt;LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleBuffer);     if (EFI_ERROR (Status)) {         DEBUG((-1, &quot;ShowStatus: Graphics output protocol not found\\n&quot;));         return EFI_UNSUPPORTED;     }          \/\/ Set square color     for (i = 0 ; i &lt; STATUS_SQUARE_SIDE * STATUS_SQUARE_SIDE; i++) {         Square[i].Blue = Blue;         Square[i].Green = Green;         Square[i].Red = Red;         Square[i].Reserved = 0x00;     }          \/\/ For each GOP instance     for (i = 0; i &lt; HandleCount; i ++) {         \/\/ Handle protocol         Status = gBS-&gt;HandleProtocol(HandleBuffer[i], &gEfiGraphicsOutputProtocolGuid, (VOID **) &GraphicsOutput);         if (EFI_ERROR (Status)) {             DEBUG((-1, &quot;ShowStatus: gBS-&gt;HandleProtocol[%d] returned %r\\n&quot;, i, Status));             continue;         }                      \/\/ Backup current image         GraphicsOutput-&gt;Blt(GraphicsOutput, Backup, EfiBltVideoToBltBuffer, 0, 0, 0, 0, STATUS_SQUARE_SIDE, STATUS_SQUARE_SIDE, 0);                  \/\/ Draw the status square         GraphicsOutput-&gt;Blt(GraphicsOutput, Square, EfiBltBufferToVideo, 0, 0, 0, 0, STATUS_SQUARE_SIDE, STATUS_SQUARE_SIDE, 0);                  \/\/ Wait 500ms         gBS-&gt;Stall(500*1000);                  \/\/ Restore the backup         GraphicsOutput-&gt;Blt(GraphicsOutput, Backup, EfiBltBufferToVideo, 0, 0, 0, 0, STATUS_SQUARE_SIDE, STATUS_SQUARE_SIDE, 0);     }          return EFI_SUCCESS; } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u043f\u0438\u043b\u0438\u0442\u0435, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u0431\u0435\u0440\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e <a href=\"https:\/\/github.com\/NikolajSchlej\/CrScreenshotDxe\">\u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u043c\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441 GitHub<\/a> \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u0441 \u0432\u0430\u0448\u0438\u043c, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0431\u044b\u043b \u043e\u043f\u0438\u0441\u0430\u0442\u044c.<\/p>\n<h4><b>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 UEFI Shell<\/b><\/h4>\n<p>  \u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0448 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438\u0437 <i>UDK2015\/Build\/MdeModulePkg\/RELEASE\/X64\/MdeModulePkg\/CrScreenshotDxe\/CrScreenshotDxe\/OUTPUT<\/i>, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u043e\u0442\u0442\u0443\u0434\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 \u2014 \u0441\u0430\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 <i>CrScreenshotDxe.efi<\/i> \u0438 \u0441\u0435\u043a\u0446\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u043d\u0435\u0433\u043e <i>CrScreenshotDxe.depex<\/i><br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0438\u0437 UEFI Shell. \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0444\u0430\u0439\u043b <i>CrScreenshotDxe.efi<\/i> \u043d\u0430 USB-\u0444\u043b\u0435\u0448\u043a\u0443 \u0441 UEFI Shell, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435\u0441\u044c \u0432 \u043d\u0435\u0433\u043e, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \u0444\u043b\u0435\u0448\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <i>fs0:<\/i> (\u043d\u043e\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u043a \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0434\u0438\u0441\u043a\u043e\u0432) \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <i>load CrScreenshotDxe.efi<\/i>. \u0415\u0441\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u0443\u0441\u043f\u0435\u0445\u0435 \u0438 \u043f\u0440\u043e\u043c\u0435\u043b\u044c\u043a\u043d\u0443\u0432\u0448\u0438\u0439 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430 \u0431\u0435\u043b\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u2014 \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">UEFI Shell<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a9a\/833\/22e\/a9a83322e5754e719e6f02228f625dd6.png\"\/><br \/>  \u042d\u0442\u043e\u0442 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442, \u043a\u0430\u043a \u0438 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435, \u0441\u043d\u044f\u0442 \u043d\u0430\u0448\u0438\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u0432 \u0443\u0433\u043b\u0443 \u043d\u0430 \u043d\u0435\u043c \u043d\u0435 \u0432\u0438\u0434\u043d\u043e.  <\/div>\n<\/div>\n<p> \u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u043c\u0435\u043b\u043e \u0436\u043c\u0438\u0442\u0435 <i>LCtrl + LAlt + F12<\/i> \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0439\u0442\u0435 \u0437\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c. \u041d\u0430 \u043c\u043e\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 AMI \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043e\u0434\u043d\u0430, \u0438 \u043f\u043e\u0442\u043e\u043c\u0443 \u044f \u0432\u0438\u0436\u0443 \u043f\u0440\u043e\u043c\u0435\u043b\u044c\u043a\u043d\u0443\u0432\u0448\u0438\u0439 \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u043e\u0434\u0438\u043d \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0437\u0430 \u043e\u0434\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438. \u041d\u0430 \u043c\u043e\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 Phoenix \u0438 Insyde \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e \u0434\u0432\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0443\u0441\u0442\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u0438\u0436\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0438\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0435\u043b\u0435\u043d\u044b\u0439, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u043e\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437 UEFI Shell \u043d\u0430 \u043d\u0438\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a \u0436\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u0430\u043c \u0443\u0436\u0435 \u043d\u0435 800\u0445600, \u0430 1366\u0445768. <br \/>  \u041d\u0443 \u0432\u043e\u0442, \u0438\u0437 \u0448\u0435\u043b\u043b\u0430 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0441 UEFI-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">RU.efi<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/225\/da4\/676\/225da4676be34619b7e2194b5d9d2334.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<h4><b>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435<\/b><\/h4>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441 BIOS Setup \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0435 \u0441\u043d\u044f\u0442\u044c \u2014 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e. \u0420\u0435\u0448\u0435\u043d\u0438\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0442\u0443\u0442 \u0434\u0432\u0430, \u043f\u0435\u0440\u0432\u043e\u0435 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u043a\u0446\u0438\u0435\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 DXE-\u0442\u043e\u043c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/github.com\/LongSoft\/UEFITool\">UEFITool<\/a>, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0436\u0435 \u043a OptionROM \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c PCIe-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0442\u043e\u0433\u0434\u0430 \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f. \u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u044f \u0435\u0449\u0435 \u043f\u043e\u043f\u044b\u0442\u0430\u044e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0443 \u043d\u0443\u0436\u043d\u0443\u044e \u0436\u0435\u043b\u0435\u0437\u043a\u0443, \u0430 \u0432\u043e\u0442 \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043d\u0435\u0442. \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c, \u0448\u044c\u0435\u043c, \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u043c, \u0432\u0442\u044b\u043a\u0430\u0435\u043c \u0444\u043b\u0435\u0448\u043a\u0443, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 BIOS Setup, \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c <i>LCtrl + LAlt + F12<\/i> \u2014 \u0432\u0443\u0430\u043b\u044f, \u0432\u0438\u0434\u0438\u043c \u0441\u0438\u043d\u0438\u0439 \u0438 \u0437\u0435\u043b\u0435\u043d\u044b\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b, \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u043e\u0440\u043c\u0430 \u0432\u0432\u043e\u0434\u0430 \u043f\u0430\u0440\u043e\u043b\u044f<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0f2\/8d4\/3fa\/0f28d43fa44f4f7d8b9833a72aa39b01.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Information<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cd5\/1ce\/93c\/cd51ce93c42245c6bf57dcad930bec10.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Main<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d7c\/3dd\/10d\/d7c3dd10d8634630a628b44c8937d0c9.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Security<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6fb\/552\/a84\/6fb552a84f2b4e329c7f6c05d3ecfd18.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Boot<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fdd\/9d8\/fb5\/fdd9d8fb566a4302b695d7aa96fb8ed7.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043a\u043b\u0430\u0434\u043a\u0430 Exit<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b9b\/7ba\/774\/b9b7ba7747cf44b9abb0af1c94c936f6.png\"\/>  <\/div>\n<\/div>\n<p>\u042d\u0442\u043e \u0443\u0441\u043f\u0435\u0445, \u0433\u043e\u0441\u043f\u043e\u0434\u0430.<\/p>\n<h4><b>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/b><\/h4>\n<p>  \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d, <a href=\"https:\/\/github.com\/NikolajSchlej\/CrScreenshotDxe\">\u043a\u043e\u0434 \u0432\u044b\u043b\u043e\u0436\u0435\u043d \u043d\u0430 GitHub<\/a>, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u0434\u0435\u044e \u0441 OptionROM, \u0438 \u0442\u0435\u043c\u0430, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0437\u0430\u043a\u0440\u044b\u0442\u0430. <br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0442\u0443\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0432\u044b \u043d\u0430\u0448\u043b\u0438 \u0431\u0430\u0433 \u0432 \u043a\u043e\u0434\u0435, \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e, \u0430\u0432\u0442\u043e\u0440\u0430, \u043c\u043e\u043d\u0441\u0442\u0440\u0443\u043e\u0437\u043d\u043e\u0441\u0442\u044c UEFI \u0438\u043b\u0438 \u0442\u043e, \u043a\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b\u043b\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0430 legacy BIOS \u2014 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438.<br \/>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0432\u0430\u043c DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432.               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/274463\/\"> http:\/\/habrahabr.ru\/post\/274463\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" align=\"left\" src=\"https:\/\/habrastorage.org\/files\/2a8\/8f3\/b41\/2a88f3b415b54f1ea653f2b5aad91306.png\"\/> \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"http:\/\/habrahabr.ru\/post\/273497\/\">\u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e SecureBoot<\/a> \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043d\u0438\u043c\u043e\u043a \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 UEFI \u0447\u0435\u0440\u0435\u0437 BIOS Setup, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u044b\u0440\u0443\u0447\u0438\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442. \u042d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043e\u043d\u043e \u043d\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u043d\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u0442\u0430\u0445, \u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0441\u0435\u0432\u0434\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u0443, \u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u2014 \u043e\u043d\u0430 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u044f\u0442\u043d\u0435\u0435, \u0438 \u0432\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0435\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0438\u0437 \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0435 \u043d\u0430\u0434\u043e.<br \/>  \u0412\u043e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438\u043c \u043c\u044b \u0438 \u0437\u0430\u0439\u043c\u0435\u043c\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DXE-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0438 \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u0432\u043e\u0434 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0432 UEFI, \u043a\u0430\u043a \u043d\u0430\u0439\u0442\u0438 \u0441\u0440\u0435\u0434\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b, \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0444\u0430\u0439\u043b \u0438\u0437 UEFI \u0438 \u043a\u0430\u043a \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u0434 \u043d\u0430 \u0421 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0432\u0441\u0435 \u0435\u0449\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2014 \u0436\u0434\u0443 \u0432\u0430\u0441 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-271558","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/271558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=271558"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/271558\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=271558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=271558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=271558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}