<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>kichik's blog &#187; Windows</title>
	<atom:link href="http://kichik.net/category/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://kichik.net</link>
	<description>Random incoherent rambling about stuff</description>
	<lastBuildDate>Mon, 12 Jul 2010 14:40:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SCSIPORT debugging</title>
		<link>http://kichik.net/2009/11/11/scsiport-debugging/</link>
		<comments>http://kichik.net/2009/11/11/scsiport-debugging/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 19:29:21 +0000</pubDate>
		<dc:creator>kichik</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[scsikd]]></category>
		<category><![CDATA[scsiport]]></category>
		<category><![CDATA[windbg]]></category>

		<guid isPermaLink="false">http://kichik.net/?p=129</guid>
		<description><![CDATA[Microsoft provides useful extensions for debugging SCSIPORT drivers in WinDbg. But with some versions of scsiport.sys, the symbol files don&#8217;t contain type information. This produces fun errors like the following. kd&#62; !scsikd.scsiext 8a392a38 ************************************************************************* *** *** *** *** *** Your debugger is not using the correct symbols *** *** *** *** In order for this [...]]]></description>
			<content:encoded><![CDATA[<div><p>Microsoft provides <a href="http://support.microsoft.com/kb/296225">useful extensions</a> for debugging SCSIPORT drivers in WinDbg. But with some versions of <tt>scsiport.sys</tt>, the symbol files don&#8217;t contain type information. This produces fun errors like the following.</p>
<p><pre class="text">kd&gt; !scsikd.scsiext 8a392a38
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: scsiport!_DEVICE_OBJECT                       ***
***                                                                   ***
*************************************************************************
scsikd error (3): ...\storage\kdext\scsikd\scsikd.c @ line 188</pre>This makes the common task of getting your device extension object very daunting. After some digging, I came up with this code to at least get my device extension object from SCSIPORT&#8217;s device extension object.</p>
<pre class="text">!drvobj mydriver
* get relevant DevObj
!devobj &lt;devobj&gt;
* get DevExt
dt mydriver!MY_DEVICE_EXTENSION poi(&lt;DevExt&gt; + b4)</pre>
<p>I&#8217;ve only tried it on Windows XP SP3. The offset may be different with other configurations. Anyone knows a better way around this? Preferable method would naturally be making <tt>scsikd</tt> work.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://kichik.net/2009/11/11/scsiport-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debug Xen Hosted Windows Kernel Over Network</title>
		<link>http://kichik.net/2009/06/11/debug-xen-hosted-windows-kernel-over-network/</link>
		<comments>http://kichik.net/2009/06/11/debug-xen-hosted-windows-kernel-over-network/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 23:05:55 +0000</pubDate>
		<dc:creator>kichik</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[neocleus]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://kichik.net/?p=109</guid>
		<description><![CDATA[Read more at my company&#8217;s blog.]]></description>
			<content:encoded><![CDATA[<div><p><a href="http://blog.neocleus.com/2009/06/11/debug-xen-hosted-windows-kernel-over-network/">Read more</a> at my company&#8217;s blog.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://kichik.net/2009/06/11/debug-xen-hosted-windows-kernel-over-network/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pragmatic variant</title>
		<link>http://kichik.net/2008/11/29/pragmatic-variant/</link>
		<comments>http://kichik.net/2008/11/29/pragmatic-variant/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 12:17:02 +0000</pubDate>
		<dc:creator>kichik</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[NSIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://kichik.net/?p=92</guid>
		<description><![CDATA[As mentioned in my previous post, I have been working on incorporating some more features into WinVer.nsh. Every little change in this header file requires testing on all possible versions and configurations of Windows. Being the Poor Open Source DeveloperTM that I am, I do not have sufficient resources to assemble a full-blown testing farm [...]]]></description>
			<content:encoded><![CDATA[<div><p>As mentioned in my <a href="http://kichik.net/2008/11/23/voodoo-fabrication/">previous post</a>, I have been working on incorporating some more features into WinVer.nsh. Every little change in this header file requires testing on all possible versions and configurations of Windows. Being the Poor Open Source Developer<sup><small>TM</small></sup> that I am, I do not have sufficient resources to assemble a full-blown testing farm with every possible version of Windows on every possible hardware configuration. Instead, I have to settle for a bunch of virtual machines I have collected over the years. It is pretty decent, but has no standards and doesn&#8217;t cover every possible version. Still, it does its job well and has proven itself very effective.</p>
<p>Obviously, be it a farm or a mere collection of virtual machines, testing on so many different configurations carries with it a hefty fine. Testing a single line change could waste almost an hour. Imagine the time it would take to test, fix, retest, fix and retest again a complete rewrite of WinVer.nsh. As fascinating as that empirical scientific experiment would have been, I was reluctant to find out. Laziness, in this case, proved to be a very practical solution.</p>
<p>WinVer.nsh tests do not really need the entire operation system and its behavior as it relies on nothing but 4 parameters. All it requires is the return values of GetVersionEx for OSVERSIONINFO and OSVERSIONINFOEX. For nothing more than 312 bytes, I have to wait until Windows Vista decides it wants to execute my test, Windows NT4 gracefuly connects to my network, Windows ME wakes up on the right side of the bed and doesn&#8217;t crash, Windows Server 2008 installs again after its license has expired and Windows 95&#8230;. Actually, that one works pretty well. So why wait?</p>
<p>Instead, I&#8217;ve created a little harvester that collects those 312 bytes, ran it on all of my machines and mustered the results into one <a href="http://nsis.svn.sourceforge.net/viewvc/nsis/NSIS/trunk/Source/Tests/winver.nsi?view=markup">huge script</a> that tests every aspect of WinVer.nsh using every possible configuration of Windows in a few seconds. It required adding a hooking option to WinVer.nsh, but with the new !ifmacrondef, that was easy enough.</p>
<p>Currently, the script tests:</p>
<ul>
<li>Windows 95 OSR B</li>
<li>Windows 98</li>
<li>Windows ME</li>
<li>Windows NT4 (SP1, SP6)</li>
<li>Windows 2000 (SP0, SP4)</li>
<li>Windows XP (SP2, SP3)</li>
<li>Windows XP x64 (SP1)</li>
<li>Windows Vista (SP0)</li>
<li>Windows Server 2008 (SP1)</li>
</ul>
<p>If you have access to a configuration not listed here, please run the <a href="http://nsis.svn.sourceforge.net/viewvc/nsis/NSIS/trunk/Source/Tests/winver.nsi?view=markup">harvester</a> and send me the results. More specifically, I could really use Windows 2003 and Windows Vista SP1. My Windows Vista installation simply refuses the upgrade to SP1. Again.</p>
<p>The test script also includes a hexdump of those 312 bytes for every configuration so anyone performing similar tests for another reason doesn&#8217;t have to parse the NSIS syntax. Feel free to use it for your testing.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://kichik.net/2008/11/29/pragmatic-variant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bigotry</title>
		<link>http://kichik.net/2008/02/08/bigotry/</link>
		<comments>http://kichik.net/2008/02/08/bigotry/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 17:10:28 +0000</pubDate>
		<dc:creator>kichik</dc:creator>
				<category><![CDATA[NSIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://kichik.net/2008/02/08/bigotry/</guid>
		<description><![CDATA[Ladies and gentlemen, we interrupt the silence schedule to bring you shocking news. Hatred has reared its ugly head on the forsaken grounds of our dear old friend &#8212; Windows 98. It appears the bigots have set a new target for their cynical and non-politically-correct persecution. Big-boned dialogs and initialization-limited rectangulars are shamelessly discriminated against [...]]]></description>
			<content:encoded><![CDATA[<div><p>Ladies and gentlemen, we interrupt the silence schedule to bring you shocking news. Hatred has reared its ugly head on the forsaken grounds of our dear old friend &#8212; Windows 98. It appears the bigots have set a new target for their cynical and non-politically-correct persecution. Big-boned dialogs and initialization-limited rectangulars are shamelessly discriminated against and abused for no acceptable reason. Exceptions, overflow errors, division errors and antique dialogs were thrown at the victims, reports say. We were unable to get comments from the alleged bigots.</p>
<p>We were unable to get pictures from the event, but luckily, it can be easily <a href="http://sourceforge.net/support/tracker.php?aid=1889720">reproduced</a>.</p>
<pre class="php">BOOL CALLBACK proc<span style="color: #66cc66;">&#40;</span>HWND h, UINT m, WPARAM w, LPARAM l<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">FALSE</span>;
<span style="color: #66cc66;">&#125;</span>
int main<span style="color: #66cc66;">&#40;</span>int argc, char* argv<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  char dt<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">24</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">0</span>,<span style="color: #66cc66;">&#125;</span>;
  RECT r = <span style="color: #66cc66;">&#123;</span><span style="color: #cc66cc;">32757</span>,<span style="color: #66cc66;">&#125;</span>;
  HWND dlg = CreateDialogIndirect<span style="color: #66cc66;">&#40;</span>
    GetModuleHandle<span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">NULL</span><span style="color: #66cc66;">&#41;</span>,
    <span style="color: #66cc66;">&#40;</span>LPDLGTEMPLATE<span style="color: #66cc66;">&#41;</span> dt,
    <span style="color: #cc66cc;">0</span>,
    proc<span style="color: #66cc66;">&#41;</span>;
  MapDialogRect<span style="color: #66cc66;">&#40;</span>dlg, &amp;r<span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// BOOM!</span>
  <span style="color: #b1b100;">return</span> <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span></pre>
</div>]]></content:encoded>
			<wfw:commentRss>http://kichik.net/2008/02/08/bigotry/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Genuinely later</title>
		<link>http://kichik.net/2007/06/28/genuinely-later/</link>
		<comments>http://kichik.net/2007/06/28/genuinely-later/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 14:41:23 +0000</pubDate>
		<dc:creator>kichik</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://kichik.net/2007/06/28/genuinely-later/</guid>
		<description><![CDATA[On every second Tuesday of the month, Microsoft indulges us with a slew updates ranging from trivial to critical and sometimes even truly superior. Sadly, not even the most ardor imbued zealot of Windows rejuvenation can bring the updates to life without a reboot. To ensure everyone do reboot, Microsoft has added the lovely &#8220;Restart [...]]]></description>
			<content:encoded><![CDATA[<div><p>On every second Tuesday of the month, Microsoft indulges us with a slew updates ranging from trivial to critical and sometimes even <a href="http://support.microsoft.com/kb/905474">truly superior</a>. Sadly, not even the most ardor imbued zealot of Windows rejuvenation can bring the updates to life without a reboot. To ensure everyone do reboot, Microsoft has added the lovely &#8220;Restart Now&#8221; dialog we have all come to cherish.</p>
<p>Distressing as it may be, while loved and cherished, the dialog is often the center of attention in the Windows loath-fest. Getting rid of it, however, isn&#8217;t that difficult. All it takes is killing one service.</p>
<pre class="php">net stop wuauserv</pre>
<p>But what if yours truly is not near the computer on patch Tuesday and the dialog starts its cheerful countdown to complete and total annihilation of the current session? While skimming through some Group Policies, I&#8217;ve noticed there&#8217;s one for disabling this annoying reboot countdown. Simply create a DWORD named <em>NoAutoRebootWithLoggedOnUsers</em> under <em>HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU</em>, set it to 1 and say bah-bye to Microsoft&#8217;s equivalent of the dreaded ad pop-up.</p>
<p>Microsoft&#8217;s Tim Rains has <a href="http://blogs.msdn.com/tim_rains/archive/2004/11/15/257877.aspx">more details on the subject</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://kichik.net/2007/06/28/genuinely-later/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
