<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	「Step to UEFI (92）关于 ConOut 的奇怪实验」的评论	</title>
	<atom:link href="https://www.lab-z.com/stu92/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.lab-z.com/stu92/</link>
	<description></description>
	<lastBuildDate>Thu, 30 Jun 2016 09:00:47 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>
		评论者：ziv2013		</title>
		<link>https://www.lab-z.com/stu92/#comment-19955</link>

		<dc:creator><![CDATA[ziv2013]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 09:00:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.lab-z.com/?p=4433#comment-19955</guid>

					<description><![CDATA[回复给 &lt;a href=&quot;https://www.lab-z.com/stu92/#comment-19954&quot;&gt;snowman1101&lt;/a&gt;。

谢谢哈 回头我就试试看]]></description>
			<content:encoded><![CDATA[<p>回复给 <a href="https://www.lab-z.com/stu92/#comment-19954">snowman1101</a>。</p>
<p>谢谢哈 回头我就试试看</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		评论者：snowman1101		</title>
		<link>https://www.lab-z.com/stu92/#comment-19954</link>

		<dc:creator><![CDATA[snowman1101]]></dc:creator>
		<pubDate>Thu, 30 Jun 2016 08:05:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.lab-z.com/?p=4433#comment-19954</guid>

					<description><![CDATA[之前可以用，是因为你没有改写pmyST-&#062;ConOut 的地址，这时地址和gST-&#062;ConOut是相等的，
后来你改写了ConOut  这样CR 就通不过验证了
如果你把改写后pmyST-&#062;ConOut 地址前的 UINTN 字节（Signature）也复制过来就应该不会报错了。
但不保证其他地方不出错，或者你声明一个 自己的 myCONSOLE_LOGGER_PRIVATE_DATA 
#define CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 (&#039;c&#039;, &#039;o&#039;, &#039;P&#039;, &#039;D&#039;)
 
 typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{
   UINTN                             Signature;
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   OurConOut;        
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   *OldConOut;       
   EFI_HANDLE                        OldConHandle;     
   UINTN                             ScreenCount;      
   CHAR16                            *Buffer;          
   UINTN                             BufferSize;       
 
                                                       //  start row is the top of the screen
   UINTN                             OriginalStartRow; 
   UINTN                             CurrentStartRow;  
 
   UINTN                             RowsPerScreen;    
   UINTN                             ColsPerScreen;    
 
   INT32                             *Attributes;      
   UINTN                             AttribSize;       
 
   EFI_SIMPLE_TEXT_OUTPUT_MODE       HistoryMode;      
   BOOLEAN                           Enabled;          
   UINTN                             RowCounter;       
 } CONSOLE_LOGGER_PRIVATE_DATA;
 
 #define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE);]]></description>
			<content:encoded><![CDATA[<p>之前可以用，是因为你没有改写pmyST-&gt;ConOut 的地址，这时地址和gST-&gt;ConOut是相等的，<br />
后来你改写了ConOut  这样CR 就通不过验证了<br />
如果你把改写后pmyST-&gt;ConOut 地址前的 UINTN 字节（Signature）也复制过来就应该不会报错了。<br />
但不保证其他地方不出错，或者你声明一个 自己的 myCONSOLE_LOGGER_PRIVATE_DATA<br />
#define CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 (&#8216;c&#8217;, &#8216;o&#8217;, &#8216;P&#8217;, &#8216;D&#8217;)</p>
<p> typedef struct _CONSOLE_LOGGER_PRIVATE_DATA{<br />
   UINTN                             Signature;<br />
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   OurConOut;<br />
   EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL   *OldConOut;<br />
   EFI_HANDLE                        OldConHandle;<br />
   UINTN                             ScreenCount;<br />
   CHAR16                            *Buffer;<br />
   UINTN                             BufferSize;       </p>
<p>                                                       //  start row is the top of the screen<br />
   UINTN                             OriginalStartRow;<br />
   UINTN                             CurrentStartRow;  </p>
<p>   UINTN                             RowsPerScreen;<br />
   UINTN                             ColsPerScreen;    </p>
<p>   INT32                             *Attributes;<br />
   UINTN                             AttribSize;       </p>
<p>   EFI_SIMPLE_TEXT_OUTPUT_MODE       HistoryMode;<br />
   BOOLEAN                           Enabled;<br />
   UINTN                             RowCounter;<br />
 } CONSOLE_LOGGER_PRIVATE_DATA;</p>
<p> #define CONSOLE_LOGGER_PRIVATE_DATA_FROM_THIS(a) CR (a, CONSOLE_LOGGER_PRIVATE_DATA, OurConOut, CONSOLE_LOGGER_PRIVATE_DATA_SIGNATURE);</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
