<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MikeKelly's WebLog : vista</title><link>http://blogs.msdn.com/mikekelly/archive/tags/vista/default.aspx</link><description>Tags: vista</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Unix Time and Windows Time</title><link>http://blogs.msdn.com/mikekelly/archive/2009/01/17/unix-time-and-windows-time.aspx</link><pubDate>Sat, 17 Jan 2009 20:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9336289</guid><dc:creator>MikeKelly</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mikekelly/comments/9336289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikekelly/commentrss.aspx?PostID=9336289</wfw:commentRss><description>&lt;P&gt;A little note in Portfolio magazine caught my attention: On Friday, February 13, at 23:31:30, the Unix time value with be 1234567890.&amp;nbsp; This got me thinking about when the Windows time value will reach that serendipitous number, and led to some research on &lt;A href="http://msdn.microsoft.com/" mce_href="http://msdn.microsoft.com"&gt;MSDN&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Time is a complicated topic - part of it is that there are so many different MSDN-documented interfaces that return time, including SQL, Java Script, WBEM, MFC, .NET, etc.&amp;nbsp; I found &lt;A href="http://msdn.microsoft.com/en-us/library/ms724962(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms724962(VS.85).aspx"&gt;this topic&lt;/A&gt; which gives a good overview of the various types of times in Windows.&amp;nbsp; Unlike Unix, where there is pretty much a simple time_t structure that contains a 32-bit signed number.&amp;nbsp; It might seem odd that Unix chooses to reduce the span of time it can represent by half by making the value signed rather than unsigned, but this is an artifact of the baseline used&amp;nbsp;- January 1, 1970.&amp;nbsp; So allowing for negative values allows times prior to 1970 to be represented on Unix (an &lt;A href="http://www.answers.com/topic/unix-time" mce_href="http://www.answers.com/topic/unix-time"&gt;interesting article&lt;/A&gt; about Unix time notes that Unix co-inventor Dennis Ritchies birthtime is the Unix time value -893,400,000).&lt;/P&gt;
&lt;P&gt;The basic idea of representing time on computers is pretty simple - pick a baseline date/time and then count some increment of nanoseconds, milliseconds, or seconds since then as a numerical value.&amp;nbsp; The trick is in picking the baseline, and accounting for all the oddities of leap years, leap seconds, changes in calendar, etc.&amp;nbsp; But basically it comes down to some number of time units from the baseline, so when Portfolio said the Unix time will be 1234567890, it means it will have been 1,234,567,890 seconds since the Unix baseline of January 1, 1970 on February 13 of this year.&amp;nbsp; Boy, how those billion plus seconds just flew by!&lt;/P&gt;
&lt;P&gt;But Windows is more complicated (&lt;EM&gt;natch, &lt;/EM&gt;some would cynically say).&amp;nbsp; MSDN notes: "There are five time formats. Time-related functions return time in one of these formats. You can also use the time functions to convert between time formats for ease of comparison and display. The following table summarizes the time formats.&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TH&gt;Format&lt;/TH&gt;
&lt;TH&gt;Type&lt;/TH&gt;
&lt;TH&gt;Description&lt;/TH&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;System&lt;/TD&gt;
&lt;TD&gt;&lt;A id=ctl00_rs1_mainContentContainer_ctl01 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);" href="http://msdn.microsoft.com/en-us/library/ms724950(VS.85).aspx"&gt;&lt;STRONG&gt;SYSTEMTIME&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;Year, month, day, hour, second, and millisecond, taken from the internal hardware clock.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;File&lt;/TD&gt;
&lt;TD&gt;&lt;A id=ctl00_rs1_mainContentContainer_ctl02 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl02',this);" href="http://msdn.microsoft.com/en-us/library/ms724284(VS.85).aspx"&gt;&lt;STRONG&gt;FILETIME&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;
&lt;TD&gt;100-nanosecond intervals since January 1, 1601.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Local&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;SYSTEMTIME&lt;/STRONG&gt; or &lt;STRONG&gt;FILETIME&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;A system time or file time converted to the system's local time zone.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;MS-DOS&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;WORD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;A packed word for the date, another for the time.&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Windows&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;DWORD&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;The number of milliseconds since the system booted; a quantity that cycles every 49.7 days.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;So what is called here Windows time (and so sounds like the parallel to Unix time) actually is dependent on when you booted your computer - so if you leave your machine running for a bit over two weeks, your Windows time will reach the magic 1234567890 value (actually at 14 days, 6 hours, 56 minutes).&lt;/P&gt;
&lt;P&gt;The System time (which in usage is actually parallel to how Unix uses time_t and what the article is calling Unix time) is a structure on Windows, broken into WORD (16-bit on Win32) values for each component, i.e. hour, minute, etc.&amp;nbsp; The system queries the realtime clock built into the processor and generates this structure from it; how exactly the CPU maintains that value is processor-dependent (part of the BIOS is making that translation).&lt;/P&gt;
&lt;P&gt;So the closest thing to Unix time - the idea of a single number representing actual date and time, and so could reach a "magic value" like 1234567890 - is FILETIME. This is what is stored in the filesystem.&amp;nbsp; I suspect it was created because it is less efficient to just store a SYSTEMTIME structure on disk (since it is composed of eight 16-bit values, or 128 bits of data, while FILETIME is a 64-bit value; doesn't sound like a lot of difference, but when you have millions of files, those bits add up... :))&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ms724284(VS.85).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms724284(VS.85).aspx"&gt;FILETIME&lt;/A&gt; "contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC)."&amp;nbsp; So here very visibly is the difference between a 32-bit value and a 64-bit value.&amp;nbsp; Remember Unix is counting seconds since January 1, 1970; Windows is counting &lt;EM&gt;nanoseconds&lt;/EM&gt; (a billionth of a second - nine orders of magnitude more precise than the Unix time) since a date over three centuries earlier - and still can store it in a single integer value because it's using a 64-bit value rather than a 32-bit value.&amp;nbsp; The power of exponential growth right there, ladies and gentlemen.&lt;/P&gt;
&lt;P&gt;So&amp;nbsp;when did&amp;nbsp;this 64-bit value reach 1,234,567,890?&amp;nbsp; Well, recall that it is measured in 100 nanosecond intervals, which are a one hundred billionths of a second, and the magic value is roughly a billion - so in fact, Windows FILETIME reached the magic value Unix will reach on Friday February 13 a&amp;nbsp;little more than a one hundred seconds, or about two minutes,&amp;nbsp;after midnight on January 1, 1601.&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9336289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikekelly/archive/tags/vista/default.aspx">vista</category><category domain="http://blogs.msdn.com/mikekelly/archive/tags/development/default.aspx">development</category><category domain="http://blogs.msdn.com/mikekelly/archive/tags/windows/default.aspx">windows</category></item><item><title>HP LaserJet printer hung "processing job"</title><link>http://blogs.msdn.com/mikekelly/archive/2007/12/27/hp-laserjet-printer-hung-processing-job.aspx</link><pubDate>Thu, 27 Dec 2007 21:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6879278</guid><dc:creator>MikeKelly</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mikekelly/comments/6879278.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikekelly/commentrss.aspx?PostID=6879278</wfw:commentRss><description>&lt;P&gt;Vista makes it very easy to add a network printer.&amp;nbsp; A friend bought an HP laptop and wanted it set up on her LAN to print to a HP LaserJet 5N printer attached to her desktop.&amp;nbsp; So I went into Visa's 'Add Printer' wizard on the laptop and it discovered the shared printer on the LAN, installed it and said it was installing the driver by querying the printer.&amp;nbsp; So far, so good.&amp;nbsp; But printing always caused the LaserJet to hang with a "Processing Job" message displayed on its LED screen.&amp;nbsp; Only a power cycle on the printer would clear this.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;I tried visiting the HP site, and found this page &lt;A href="http://www.hp.com/cpso-support-new/SDD/main.htm?cc=us&amp;amp;lang=en" mce_href="http://www.hp.com/cpso-support-new/SDD/main.htm?cc=us&amp;amp;lang=en"&gt;http://www.hp.com/cpso-support-new/SDD/main.htm?cc=us&amp;amp;lang=en&lt;/A&gt;&amp;nbsp;which claims to install an ActiveX control that will detect whether the correct driver is installed.&amp;nbsp; I suspected a driver problem, so that seemed just the ticket.&amp;nbsp; It installed and claimed the wrong driver was installed and that it fixed it.&amp;nbsp; I rebooted, reprinted - and no cigar - still "Processing Job".&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;I thought maybe the HP site hadn't installed the right driver after all.&amp;nbsp; Going back to the HP site, and searching manually for the Vista driver for the (discontinued) LaserJet 5N, I found a page that claimed the correct driver ships with Vista and there is no download available.&amp;nbsp; Hmm...&lt;/P&gt;
&lt;P mce_keep="true"&gt;I went to the Printers control panel, right clicked on the printer and selected "Properties" from the "Adminisrator"&amp;nbsp;submenu in the context menu.&amp;nbsp; This showed me that in fact the HP LaserJet 6N driver was installed - not the 5N.&amp;nbsp; Ah ha!&amp;nbsp; So I clicked the "New Driver" button, navigated the control that came up with printer manufacturers listed on the left and model on the right - found the "LaserJet 5N" driver and installed that.&amp;nbsp; Rebooted.&amp;nbsp; And it worked!&amp;nbsp; &lt;/P&gt;
&lt;P mce_keep="true"&gt;So the advice - don't believe either HP or&amp;nbsp;Vista if they claim to have found and installed the correct driver.&amp;nbsp; It's like the old journalistic saw: "If your mother says she loves you - check it out."&amp;nbsp; The devil is (usually) in the details - in this case, the difference between a 5N and a 6N.&amp;nbsp; :)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6879278" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikekelly/archive/tags/vista/default.aspx">vista</category></item><item><title>Lost Vista Password</title><link>http://blogs.msdn.com/mikekelly/archive/2007/11/25/lost-vista-password.aspx</link><pubDate>Sun, 25 Nov 2007 19:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6518715</guid><dc:creator>MikeKelly</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/mikekelly/comments/6518715.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikekelly/commentrss.aspx?PostID=6518715</wfw:commentRss><description>&lt;P&gt;My son has an HP laptop and playing around, changed his password and then couldn't get into his account.&amp;nbsp; There were a number of problems here, any of which we could have fixed had we been paying more attention earlier on (like soon after he got his laptop):&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;We could have &lt;A class="" href="http://support.microsoft.com/kb/930381/" mce_href="http://support.microsoft.com/kb/930381/"&gt;created a password recovery disk&lt;/A&gt; (which can also be on a USB keyfob) - but we didn't.&lt;/LI&gt;
&lt;LI&gt;We could have created a secondary administrative account on the machine with a password known only to me, his dad - but we didn't.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;We've now done both of these things since we were able to restore access to the machine under his previous password.&amp;nbsp; But it was a bit of a trick to get access under the previous password.&amp;nbsp; I figured we were going to have to reinstall Vista, using the File and Settings transfer program to first grab his old settings and files, and then reinstall all the programs - probably a 3-4 hour undertaking.&amp;nbsp; But then I had another thought.&lt;/P&gt;
&lt;P&gt;The key here was using Vista's &lt;A class="" href="http://windowshelp.microsoft.com/Windows/en-US/Help/9f6d755a-74bb-4a7d-a625-d762dd8e79e51033.mspx" mce_href="http://windowshelp.microsoft.com/Windows/en-US/Help/9f6d755a-74bb-4a7d-a625-d762dd8e79e51033.mspx"&gt;System Restore&lt;/A&gt; feature. The exact steps will probably vary on your machine (and this is from my memory on his HP laptop, having just done this) but roughly what we did was:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Harangue him for a few hours to try to remember his password, try different variations (with and without caps lock on, for instance) and try omitting characters he might have thought he typed when he changed the password but didn't.&amp;nbsp; That didn't work. :)&lt;/LI&gt;
&lt;LI&gt;Reboot the machine and press F11 while it's booting - on HP machines, this gets into the "recovery console" which is thoughfully put on the system disk in a separate partition by HP.&lt;/LI&gt;
&lt;LI&gt;Select to restore the system (note: not restore to it's original factory condition - that will reformat your main partition and wipe out your files, which we really wanted to avoid).&lt;/LI&gt;
&lt;LI&gt;Chose to reset to an early restore point - in his case, there was a restore point just four days old.&amp;nbsp; Vista creates these restore points regularly.&amp;nbsp; The only thing he had done in the last four days was reset his password, so I thought there was a chance that Vista might reset the old password along with the restore point.&amp;nbsp; I wasn't sure it would, but I thought it was worth a try.&lt;/LI&gt;
&lt;LI&gt;It took about ten minutes for Vista to do this and it then rebooted - and he was thrilled that he was able to log in with his old password!&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I've used System Restore in other cases to get rid of really wierd behavior, and it always works like a charm. This is yet another use.&lt;/P&gt;
&lt;P&gt;Oh, yeah, and we then created a secondary administrative account on the machine.&amp;nbsp; Do that right now if you have a laptop with just one admin account - then squirrel away the password somewhere safe at home and you'll thank yourself one day.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6518715" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikekelly/archive/tags/vista/default.aspx">vista</category></item><item><title>Adobe Reader 8 and Vista Install Issue</title><link>http://blogs.msdn.com/mikekelly/archive/2007/01/16/adobe-reader-8-and-vista-install-issue.aspx</link><pubDate>Wed, 17 Jan 2007 01:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1480343</guid><dc:creator>MikeKelly</dc:creator><slash:comments>19</slash:comments><comments>http://blogs.msdn.com/mikekelly/comments/1480343.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mikekelly/commentrss.aspx?PostID=1480343</wfw:commentRss><description>&lt;P&gt;Good &lt;A class="" title=post href="http://weblogs.asp.net/israelio/archive/2006/12/23/installing-adobe-acrobat-reader-8-on-vista.aspx" target=_blank mce_href="http://weblogs.asp.net/israelio/archive/2006/12/23/installing-adobe-acrobat-reader-8-on-vista.aspx"&gt;post&lt;/A&gt; on resolving a problem I also had with installing &lt;A class="" href="http://www.adobe.com/products/acrobat/readstep2.html" mce_href="http://www.adobe.com/products/acrobat/readstep2.html"&gt;Adobe Reader 8&lt;/A&gt; on Vista.&amp;nbsp; There seem to be many symptoms to this problem and the root cause is that Adobe has tried to apparently make the setup too smart and it ends up getting tricked up by something on Vista.&amp;nbsp; The workaround is to catch the installation files after the self-extracting executable has extracted them, but before it fails to start the install, and copy the files to another directory.&amp;nbsp; This is because the oh-so-smart Adobe installer deletes the files after it fails to install them.&amp;nbsp; Copy them to a safe place, then manually run the installation, which will work.&amp;nbsp; Hopefully Adobe will investigate this problem, which seems it may be related to User Account Control on Vista, and fix it in their installer.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1480343" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mikekelly/archive/tags/vista/default.aspx">vista</category></item></channel></rss>