<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-24104990</id><updated>2011-04-21T15:26:51.141-03:00</updated><title type='text'>Creando y Construyendo</title><subtitle type='html'>In this Blog, i ll post just my bookmarks.
I just copy and paste the first lines of the bookmarked page.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mswiczar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24104990.post-7947511796922558287</id><published>2009-04-04T01:33:00.002-03:00</published><updated>2009-04-04T01:39:46.183-03:00</updated><title type='text'>MagicJack Recorder</title><content type='html'>With MagicJackRecorder, now you could record you magicjack phone calls.&lt;br /&gt;Now its really easy. if you want, you could use magicjackrecorder to record all your phone conversations just with a simple tool.&lt;br /&gt;&lt;br /&gt;Try it at: http://www.magicjackrecorder.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-7947511796922558287?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.magicjackrecorder.com' title='MagicJack Recorder'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/7947511796922558287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/7947511796922558287'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2009/04/magicjack-recorder.html' title='MagicJack Recorder'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-4575547813658276711</id><published>2008-02-16T12:22:00.001-02:00</published><updated>2008-02-16T12:30:27.701-02:00</updated><title type='text'>Skype  Recorder and other Softphone Recorder</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.easyvoiprecorder.com/"&gt;EasyVoipRecorder&lt;/a&gt;  is the universal VOIP softphone recorder.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.easyvoiprecorder.com/"&gt;EasyVoipRecorder &lt;/a&gt;is a small computer application which records VOIP softphones conversations.&lt;br /&gt;&lt;br /&gt;With this tool you can record and store Skype, Gtalk (Google Talk,) VoipCheap, VoipStunt, VoipBuster, 12Voip, Yahoo Messenger, MSN Live, Globe7, VoipWise, VoipRaider, VoipDiscount , Net2phone,  JustVoip and LowRateVoip conversations.&lt;br /&gt;&lt;br /&gt;It's the perfect tool for record, store, organize and share your voip conversations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Some &lt;a href="http://www.easyvoiprecorder.com/"&gt;EasyVoipRecorder &lt;/a&gt;Features:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Records any kind of VoIP conversations (PC-to-PC, PC-to-phone conversations)&lt;/li&gt;&lt;li&gt;Save your voice and your partner's voice in separated channels.&lt;/li&gt;&lt;li&gt;Save VoIP records in WAV/OGG/MP3/SPEXX (Stereo/Mono)&lt;/li&gt;&lt;li&gt;Easily convert your voip recordings into different formats.&lt;/li&gt;&lt;li&gt;Easily search and play your recordings. Using the EasyVoipRecorder Dashboard. &lt;/li&gt;&lt;li&gt;Share you conversation with your partners, friends and family. (Automatic Upload)&lt;/li&gt;&lt;li&gt;Upload onto our website and post a link to share with your friends.&lt;/li&gt;&lt;li&gt;Easy integration with your existing VoIP application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why do you need to record a Voip conversation?&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Convert a VoIP conversation into a podcast. (podcasting)&lt;/li&gt;&lt;li&gt;Share your conversation with your friends or customers.&lt;/li&gt;&lt;li&gt;Keep track of your business conversations.&lt;/li&gt;&lt;li&gt;Keep  your family conversations forever.&lt;/li&gt;&lt;li&gt;Hear the conversation whenever you want.&lt;/li&gt;&lt;li&gt;Index the conversation and take notes. Transcript the conversation for fast searching.&lt;/li&gt;&lt;li&gt;And much more...&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-4575547813658276711?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/4575547813658276711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/4575547813658276711'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2008/02/skype-recorder-and-other-softphone.html' title='Skype  Recorder and other Softphone Recorder'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-593020390147590199</id><published>2007-05-02T21:41:00.000-03:00</published><updated>2007-05-02T21:44:32.562-03:00</updated><title type='text'>Virtual-Condom Technology</title><content type='html'>&lt;span&gt;Virtual-Condom Technology is an advanced technology that allows you to download and run all possible kinds of software on your computer without you ever having to worry again about the possible risk of becoming infected with &lt;a href="http://www.vappware.com/vapp/index.php?option=com_content&amp;task=view&amp;amp;id=24&amp;Itemid=56"&gt;VTD’s or Virtually Transmitted Diseases&lt;/a&gt; . This term is our own definition of the kind of malware that includes viruses, trojans, worms, spyware, etc.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;h2 align="left"&gt;&lt;span&gt;How Its Works? &lt;/span&gt;&lt;/h2&gt;&lt;p class="MsoNormal" align="left"&gt;&lt;span&gt;It works by creating a virtual layer between your computer and any executable program. The result is that this program cannot write any data to your disk. Which, in turn, means that it cannot write any data to your registry too, and instead, writes this data on a virtual disk and in a virtual registry within this virtual layer.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="left"&gt;This way your valuable data is always secure and protected. You never have to worry again about data theft (keyloggers). Your bank accounts are safe from any phising attempt (banking scams and rootkits). Your surfing habits are nobody’s business (spyware).&lt;br /&gt;&lt;/p&gt;&lt;a href="http://www.vappware.com"&gt;http://www.vappware.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-593020390147590199?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/593020390147590199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/593020390147590199'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2007/05/virtual-condom-technology.html' title='Virtual-Condom Technology'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114323366408345947</id><published>2006-03-24T17:54:00.000-03:00</published><updated>2007-05-02T21:54:57.026-03:00</updated><title type='text'>Association of Shareware Professionals: Portable Application Description (PAD)</title><content type='html'>&lt;a href="http://www.asp-shareware.org/pad/"&gt;Association of Shareware Professionals: Portable Application Description (PAD)&lt;/a&gt;: "PAD is the Portable Application Description, and it helps authors provide product descriptions and specifications to online sources in a standard way, using a standard data format that will allow webmasters and program "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114323366408345947?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114323366408345947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114323366408345947'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/association-of-shareware-professionals.html' title='Association of Shareware Professionals: Portable Application Description (PAD)'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114316474009824405</id><published>2006-03-23T22:45:00.000-03:00</published><updated>2007-05-02T21:55:36.498-03:00</updated><title type='text'>bochs: The Open Source IA-32 Emulation Project (Tech Specs)</title><content type='html'>&lt;a href="http://bochs.sourceforge.net/techdata.html"&gt;bochs: The Open Source IA-32 Emulation Project (Tech Specs)&lt;/a&gt;&lt;br /&gt;Welcome to the Bochs IA-32 Emulator Project&lt;br /&gt;    Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS. Currently, Bochs can be compiled to emulate a 386, 486, Pentium, Pentium Pro or AMD64 CPU, including optional MMX, SSE, SSE2 and 3DNow! instructions.&lt;br /&gt;Bochs is capable of running most Operating Systems inside the emulation including Linux, DOS, Windows® 95/98 and Windows® NT/2000/XP. Bochs was written by Kevin Lawton and is currently maintained by this project.&lt;br /&gt;    Bochs can be compiled and used in a variety of modes, some which are still in development. The 'typical' use of bochs is to provide complete x86 PC emulation, including the x86 processor, hardware devices, and memory. This allows you to run OS's and software within the emulator on your workstation, much like you have a machine inside of a machine. For instance, let's say your workstation is a Unix/X11 workstation, but you want to run Win'95 applications. Bochs will allow you to run Win 95 and associated software on your Unix/X11 workstation, displaying a window on your workstation, simulating a monitor on a PC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114316474009824405?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114316474009824405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114316474009824405'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/bochs-open-source-ia-32-emulation.html' title='bochs: The Open Source IA-32 Emulation Project (Tech Specs)'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114303821166751373</id><published>2006-03-22T11:36:00.000-03:00</published><updated>2007-05-02T21:59:18.951-03:00</updated><title type='text'>How to Shut Down the System</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shutdown/base/how_to_shut_down_the_system.asp"&gt;How to Shut Down the System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The following example uses the  &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl02',this);" href="http://msdn2.microsoft.com/en-us/library/aa376868.aspx"&gt;&lt;b&gt;ExitWindowsEx&lt;/b&gt;&lt;/a&gt; function to shut down the system. Shutting down flushes file buffers to disk and brings the system to a condition in which it is safe to turn off the computer. The application must first enable the SE_SHUTDOWN_NAME privilege. For more information, see &lt;a onclick="javascript:Track('ctl00_LibFrame_ctl01|ctl00_LibFrame_ctl03',this);" href="http://msdn2.microsoft.com/en-us/library/aa379306.aspx"&gt;Privileges&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114303821166751373?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114303821166751373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114303821166751373'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/how-to-shut-down-system.html' title='How to Shut Down the System'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114297525742014301</id><published>2006-03-21T18:07:00.000-03:00</published><updated>2006-03-21T18:07:37.436-03:00</updated><title type='text'>GetModuleFileName</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulefilename.asp"&gt;GetModuleFileName&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114297525742014301?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114297525742014301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114297525742014301'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/getmodulefilename.html' title='GetModuleFileName'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114291037183222735</id><published>2006-03-21T00:06:00.000-03:00</published><updated>2007-05-02T21:59:37.513-03:00</updated><title type='text'>Larry Osterman's WebLog : Little known Win32 APIs: DisableThreadLibraryCalls()</title><content type='html'>&lt;a href="http://blogs.msdn.com/larryosterman/archive/2004/06/03/147736.aspx"&gt;Larry Osterman's WebLog : Little known Win32 APIs: DisableThreadLibraryCalls()&lt;/a&gt;: "parameter doesn’t care about DLL_THREAD_XXX messages, and thus the loader won’t call into the DLL on threa"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114291037183222735?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114291037183222735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114291037183222735'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/larry-ostermans-weblog-little-known.html' title='Larry Osterman&apos;s WebLog : Little known Win32 APIs: DisableThreadLibraryCalls()'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114245072865711262</id><published>2006-03-15T16:25:00.000-03:00</published><updated>2007-05-02T21:56:45.643-03:00</updated><title type='text'>PHP AJAX File Upload Progress Meter</title><content type='html'>&lt;a href="http://bluga.net/projects/uploadProgressMeter/"&gt;PHP AJAX File Upload Progress Meter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This is an AJAX upload progress meter for PHP. The code is released under the GPL.&lt;/p&gt;  &lt;p&gt;The author is &lt;a href="http://blog.joshuaeichorn.com/"&gt;Joshua Eichorn&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It uses the upload progress meter patch and extension from: &lt;a href="http://pdoru.from.ro/"&gt;http://pdoru.from.ro/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.joshuaeichorn.com/archives/2006/03/14/php-ajax-file-upload-progress-meter-updates/"&gt;For more information read the blog posting about this code&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wiki.bluga.net/HTML_AJAX/ProgressMeter?"&gt;There is also a wiki available where further documentation is being added&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;AJAX File Upload Progress Meter&lt;/h3&gt; &lt;p&gt;This code was originally written using JPSpan but has been updated to use my AJAX library, &lt;a href="http://htmlajax.org/"&gt;HTML_AJAX&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Demo: &lt;a href="http://bluga.net/projects/uploadProgressMeter/newdemo.php"&gt;View Demo with a patched PHP&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Demo: &lt;a href="http://bluga.net/projects/uploadProgressMeter/demo/demo.php"&gt;View Demo without the patch&lt;/a&gt;&lt;/p&gt;   &lt;p&gt;You can &lt;a href="http://websvn.bluga.net/wsvn/HTML_AJAX/UploadProgressMeter/"&gt;browse the source on SVN&lt;/a&gt;, or check it out: http://svn.bluga.net/HTML_AJAX/UploadProgressMeter&lt;/p&gt; &lt;p&gt;Downloads are provided by the &lt;a href="http://websvn.bluga.net/wsvn/HTML_AJAX/UploadProgressMeter/trunk/?op=dl&amp;rev=0&amp;amp;isdir=1"&gt;svn viewer&lt;/a&gt;, there hasn't been a formal release. (Note: this requires you have HTML_AJAX 0.2.5+ installed)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114245072865711262?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245072865711262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245072865711262'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/php-ajax-file-upload-progress-meter.html' title='PHP AJAX File Upload Progress Meter'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114245012255465722</id><published>2006-03-15T16:15:00.000-03:00</published><updated>2007-05-02T21:59:56.815-03:00</updated><title type='text'>Microsoft.com Advanced Search</title><content type='html'>&lt;a href="http://search.microsoft.com/advancedsearch.aspx?mkt=en-US&amp;amp;setlang=en-US"&gt;Microsoft.com Advanced Search&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114245012255465722?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245012255465722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245012255465722'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/microsoftcom-advanced-search.html' title='Microsoft.com Advanced Search'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114245008864506031</id><published>2006-03-15T16:14:00.001-03:00</published><updated>2007-05-02T21:58:36.682-03:00</updated><title type='text'>Utilities/ WinIo/ProcSpy32</title><content type='html'>&lt;span style="font-family:Verdana;font-size:85%;"&gt;&lt;span style="font-size:180%;"&gt;&lt;b&gt;Utilities&lt;/b&gt;&lt;/span&gt; &lt;hr /&gt;  &lt;span style="font-size:130%;"&gt;&lt;b&gt;WinIo&lt;/b&gt;&lt;/span&gt; &lt;p&gt; The &lt;a href="http://www.internals.com/utilities/winio.zip"&gt;WinIo&lt;/a&gt; library allows 32-bit Windows applications to directly access I/O ports and physical memory. It bypasses Windows protection mechanisms by using a combination of a kernel-mode device driver and several low-level programming techniques. &lt;/p&gt;  &lt;span style="font-size:130%;"&gt;&lt;b&gt;ProcSpy32&lt;/b&gt;&lt;/span&gt;  &lt;p&gt; &lt;a href="http://www.internals.com/utilities/win95/procspy32/ProcSpy32.zip"&gt;ProcSpy32&lt;/a&gt; is a Visual Basic utility which monitors the execution and termination of processes under Windows 9x. It uses an OCX component and a device driver that work in tandem to receive notifications from the system whenever a process is started or terminated. You are free to use the bundled ProcSpy OCX and its source code for any purpose. &lt;/p&gt;  &lt;span style="font-size:130%;"&gt;&lt;b&gt;NtDriverList&lt;/b&gt;&lt;/span&gt;  &lt;p&gt; &lt;a href="http://www.internals.com/utilities/winnt/ntdriverlist/NtDriverList.zip"&gt;NtDriverList&lt;/a&gt; is a user-mode console application which takes advantage of the undocumented NtQuerySystemInformation API to obtain a list of loaded drivers under Windows NT. Source code is included ! &lt;/p&gt;  &lt;span style="font-size:130%;"&gt;&lt;b&gt;StickyApp32&lt;/b&gt;&lt;/span&gt;  &lt;p&gt; &lt;a href="http://www.internals.com/utilities/winnt/stickyapp32/StickyApp32.zip"&gt;StickyApp32&lt;/a&gt; is a tiny visual basic application which is resistant to termination attempts from the Windows NT task manager. It does this by establishing a hook on the OpenProcess API and modifying the return value of this function. Complete source code is included ! &lt;/p&gt;  &lt;span style="font-size:130%;"&gt;&lt;b&gt;APISpy32&lt;/b&gt;&lt;/span&gt;  &lt;p&gt;API spying utilities are the most powerful tools for exploring the internal structure of applications and operating systems. They provide tons of information and enable the user to explore the "guts" of the application under test. Unfortunately, most API spying utilities can monitor only one application at a time and also have the tendency to break apart when used with large pieces of code. &lt;a href="http://www.internals.com/utilities/winnt/apispy32/APISpy32.zip"&gt;APISpy32&lt;/a&gt; is a different type of API interceptor which solves most of these problems. It monitors API calls made by ALL active Windows applications and logs the values of input parameters. This version works under Windows 9x/NT/2000 and ME. &lt;/p&gt;&lt;/span&gt;&lt;a href="http://www.internals.com/utilities_main.htm"&gt;Utilities&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114245008864506031?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245008864506031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245008864506031'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/utilities.html' title='Utilities/ WinIo/ProcSpy32'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114245004375530852</id><published>2006-03-15T16:14:00.000-03:00</published><updated>2007-05-02T21:53:28.745-03:00</updated><title type='text'>Hector's Memos:Where's The Checked Build?</title><content type='html'>&lt;a href="http://www.osronline.com/article.cfm?article=259"&gt;Hector's Memos:Where's The Checked Build?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#585885;"&gt;Date:&lt;/span&gt;&lt;/b&gt;                    &lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#585885;"&gt;                     29-Aug-03, Modified: 11-Apr-07 &lt;/span&gt;&lt;br /&gt;                &lt;span style="font-family:Arial, Helv, sans-serif;font-size:85%;color:#585885;"&gt;&lt;b&gt;From:&lt;/b&gt;&lt;/span&gt;                  &lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#585885;"&gt;                  Hector J. Rodriguez&lt;br /&gt;                    &lt;span style="font-family:Arial, Helv, sans-serif;"&gt;&lt;b&gt;To:                      &lt;/b&gt;&lt;/span&gt;   Driver Developers                                          &lt;br /&gt;                    &lt;/span&gt;&lt;/p&gt;                   &lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#585885;"&gt;&lt;b&gt;Re:                    Where's The Checked Build?&lt;/b&gt;&lt;/span&gt;                                      &lt;br /&gt;                                                &lt;b&gt; &lt;/b&gt;&lt;br /&gt;                 &lt;br /&gt;          &lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#333333;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;So, where &lt;strong&gt;is&lt;/strong&gt; the checked build download?  It's gotten to be like it's some sort of a freakin' test.  "If you can't find the checked build, you're not smart enough to write Windows drivers."  &lt;em&gt;Caray!&lt;/em&gt;  If that's the case, then I must be a big &lt;em&gt;pendejo&lt;/em&gt;, cuz it took me more than 30 minutes to find the damn thing.&lt;/span&gt;  &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:Arial, Helvetica, sans-serif;font-size:85%;color:#333333;"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;strong&gt;Confused as to what to do with these downloaded executables?&lt;/strong&gt;  If you're frustrated because you can't figure out how to install the checked kernel and HAL for your system from the executable downloads this article points to, &lt;a class="" href="http://www.osronline.com/article.cfm?id=405"&gt;check out this memo&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114245004375530852?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245004375530852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114245004375530852'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/hectors-memoswheres-checked-build.html' title='Hector&apos;s Memos:Where&apos;s The Checked Build?'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114244991625469298</id><published>2006-03-15T16:11:00.001-03:00</published><updated>2007-05-02T21:52:01.362-03:00</updated><title type='text'>Enabling JIT-attach Debugging</title><content type='html'>&lt;a href="http://msdn2.microsoft.com/en-us/library/2ac5yxx6.aspx"&gt;Enabling JIT-attach Debugging&lt;/a&gt;&lt;br /&gt;&lt;div class="majorTitle"&gt;.NET Framework Developer's Guide          &lt;/div&gt;&lt;div class="title"&gt;Enabling JIT-attach Debugging          &lt;/div&gt;&lt;!--Content type: DocStudio. Transform: devdiv2mtps.xslt.--&gt;   &lt;p&gt; &lt;/p&gt;&lt;p&gt;JIT-attach debugging is the phrase used to describe attaching a debugger to an executable image that throws an uncaught exception. In unmanaged code, it is what happens when you see a message box that invites you to: &lt;/p&gt;  &lt;ul&gt;&lt;li&gt; &lt;p&gt;Click OK to terminate the program&lt;/p&gt; &lt;/li&gt;&lt;li&gt; &lt;p&gt;Click CANCEL to debug the program&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If you click CANCEL, a debugger is started and attached to the process. The registry key that controls this is called &lt;b&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\AeDebug&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;For an application that includes managed code, the common language runtime will present a similar dialog to JIT-attach a debugger. The registry key that controls this option is called &lt;b&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\DbgJITDebugLaunchSetting&lt;/b&gt;.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114244991625469298?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114244991625469298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114244991625469298'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/enabling-jit-attach-debugging.html' title='Enabling JIT-attach Debugging'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114244983979395412</id><published>2006-03-15T16:10:00.000-03:00</published><updated>2007-05-02T21:51:08.376-03:00</updated><title type='text'>Alex Fedotov.com - Creating Self-Installing Packages</title><content type='html'>&lt;a href="http://www.alexfedotov.com/articles/launch.asp"&gt;Alex Fedotov.com - Creating Self-Installing Packages&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Self-installing packages usually consist of a small launcher application and an archive that contains the main installer and application components to be installed. The launcher extracts the archive into a temporary directory, runs the main installer, waits for its completion and then deletes temporary files. The launcher must be small and it has to run on any version of Windows. &lt;/p&gt; &lt;p&gt;This article focuses on creating of the self-installing package launcher. It does not explain how to create the main installer. You can use one of commertial packages such as InstallShield for that purpose, or you can write your own installer. This is entirely up to you. &lt;/p&gt;  &lt;h2&gt;Composing a Self-Installing Package&lt;/h2&gt;  &lt;p&gt;The first thing we have to decide is which compression algorithm to use. Another question is how to combine the launcher and the archive into a single piece. Remember, we want the launcher to be as small as possible, so an ideal solution would be to use a compression scheme which is already built into the operating system. Windows cabinet files provide reasonably good compression and can be easily expanded using the &lt;b&gt;SetupIterateCabinet&lt;/b&gt; function, which we will describe later in this article. &lt;/p&gt; &lt;p&gt;To create a cabinet file you can use the &lt;b&gt;cabarc&lt;/b&gt; utility, which is shipped with the Platform SDK. Using this utility is pretty straightforward, just run it without arguments to see the list of available options: &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114244983979395412?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114244983979395412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114244983979395412'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/alex-fedotovcom-creating-self.html' title='Alex Fedotov.com - Creating Self-Installing Packages'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239513244370564</id><published>2006-03-15T00:58:00.000-03:00</published><updated>2006-03-15T00:58:52.443-03:00</updated><title type='text'>INFO: Tips for Windows NT Driver Developers -- Things to Avoid</title><content type='html'>SUMMARY&lt;br /&gt;Following are some tips for creating Windows NT device drivers. The tips presented apply to all technologies. You can also use this as a checklist for troubleshooting driver problems.&lt;br /&gt;&lt;br /&gt;You need to have a basic knowledge of Windows NT architecture and some device driver development experience to use the information presented below effectively. For more information on device driver development, please see the Windows NT device driver kit (DDK), which is available through MSDN Professional membership.&lt;br /&gt;MORE INFORMATION&lt;br /&gt;Following is a list of things that developers should avoid when working with Windows NT device drivers:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q186775&amp;amp;"&gt;INFO: Tips for Windows NT Driver Developers -- Things to Avoid&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239513244370564?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239513244370564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239513244370564'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/info-tips-for-windows-nt-driver.html' title='INFO: Tips for Windows NT Driver Developers -- Things to Avoid'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239506147715801</id><published>2006-03-15T00:55:00.000-03:00</published><updated>2006-03-15T00:57:41.476-03:00</updated><title type='text'>Visual C++ Linker Options</title><content type='html'>LINK is a 32-bit tool that links Common Object File Format (COFF) object files and libraries to create a 32-bit executable (.exe) file or dynamic-link library (DLL). &lt;br /&gt;&lt;br /&gt;The table below is a comprehensive list of options for LINK.exe. This section also includes information on: &lt;br /&gt;Compiler-Controlled LINK Options&lt;br /&gt;LINK Input Files&lt;br /&gt;LINK Output&lt;br /&gt;Reserved Words&lt;br /&gt;&lt;br /&gt;Linker options specified on the command line are not case sensitive: /base and /BASE mean the same thing. &lt;br /&gt;&lt;br /&gt;You can specify some linker options via the comment pragma.&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_Linker_Reference.asp"&gt;Visual C++ Linker Options&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239506147715801?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239506147715801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239506147715801'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/visual-c-linker-options.html' title='Visual C++ Linker Options'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239487062408102</id><published>2006-03-15T00:53:00.000-03:00</published><updated>2006-03-15T00:54:30.626-03:00</updated><title type='text'>Building and deploying a basic WDF Kernel Mode Driver</title><content type='html'>At the end of December 2005, Microsoft released the new Windows Driver Foundation. This is a new framework for building windows device drivers. It is a lot more high level than the Windows Driver Model (WDM), and as such it is easier to learn, and less time consuming to develop drivers with.&lt;br /&gt;&lt;br /&gt;This article will show you how to code, build and deploy a skeleton WDF Kernel Mode Device Driver.&lt;br /&gt;&lt;br /&gt;This article does not explain all the low level concepts behind driver development. To learn these basic concepts, check out the materials mentioned in the ‘Related material’ chapter. This would be far too much to explain in 1 article.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/useritems/wdf_kmdf_basic.asp"&gt;WDF&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239487062408102?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239487062408102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239487062408102'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/building-and-deploying-basic-wdf.html' title='Building and deploying a basic WDF Kernel Mode Driver'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239480842713968</id><published>2006-03-15T00:52:00.000-03:00</published><updated>2006-03-15T00:53:28.426-03:00</updated><title type='text'>PECompact</title><content type='html'>&lt;a href="http://www.bitsum.com/index.asp"&gt;PECompact&lt;/a&gt; is a utility of the genre known as "executable packers" or "executable compressors". Executable packers compress executable modules so that their physical size is considerably smaller. At runtime, compressed modules (executables) are rapidly decompressed and reconstructed in memory. &lt;br /&gt;&lt;br /&gt;In fact, decompression and reconstruction is so rapid that load time usually improves since the time saved by reading fewer bytes from the disk or network often exceeds the time spent reconstructing and decompressing in memory.&lt;br /&gt;&lt;br /&gt;And the compression ratio? It's better than any general purpose compression software like ZIP, RAR, or 7-ZIP. This is because PECompact is optimized for a specific type of file format: executables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239480842713968?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239480842713968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239480842713968'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/pecompact.html' title='PECompact'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239468897440196</id><published>2006-03-15T00:50:00.000-03:00</published><updated>2006-03-15T00:51:28.973-03:00</updated><title type='text'>Viruses don't harm ignorance do!</title><content type='html'>"Everyone has the right to freedom of opinion and expression;&lt;br /&gt;this right includes freedom to hold opinions without interference&lt;br /&gt;and to seek, receive and impart information and ideas througt&lt;br /&gt;any media and regardless of frontiers." &lt;br /&gt;Article 19 of "Universal Declaration of Human Rights"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vx.netlux.org/"&gt;Welcome to VX Heavens&lt;/a&gt;! This site is dedicated to providing information about computer viruses (or virii, as some would prefer) to anyone who is interested in this topic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239468897440196?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239468897440196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239468897440196'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/viruses-dont-harm-ignorance-do.html' title='Viruses don&apos;t harm ignorance do!'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239449811984598</id><published>2006-03-15T00:47:00.000-03:00</published><updated>2006-03-15T00:48:18.120-03:00</updated><title type='text'>Frequently Asked Questions About Visual C++ .NET</title><content type='html'>64-bit Support &lt;br /&gt;C++ and .NET &lt;br /&gt;Visual C++ 2005 &lt;br /&gt;Devices &lt;br /&gt;General &lt;br /&gt;High-Performance Computing &lt;br /&gt;IDE &lt;br /&gt;ISO Conformance &lt;br /&gt;Language &lt;br /&gt;Libraries &lt;br /&gt;MFC &lt;br /&gt;Visual Studio Versions and Upgrades &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/visualc/productinfo/faq/default.aspx"&gt;FAQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239449811984598?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239449811984598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239449811984598'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/frequently-asked-questions-about.html' title='Frequently Asked Questions About Visual C++ .NET'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239437643199491</id><published>2006-03-15T00:45:00.000-03:00</published><updated>2006-03-15T00:46:16.433-03:00</updated><title type='text'>Using Win32 calling conventions</title><content type='html'>When writing code for the Win32 platform, most developers don't pay attention to selecting a "calling convention", and in most cases it doesn't really matter much. But as systems get larger and split into more modules (especially when third-party modules are to be included), this becomes something that cannot really be ignored. &lt;br /&gt;&lt;br /&gt;In this Tech Tip, we discuss what the MSVC calling conventions are, why to choose one over the other, and "big system" considerations that may not be obvious. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.unixwiz.net/techtips/win32-callconv.html"&gt;Calling Conventions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239437643199491?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239437643199491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239437643199491'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/using-win32-calling-conventions.html' title='Using Win32 calling conventions'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239428538191051</id><published>2006-03-15T00:42:00.000-03:00</published><updated>2006-03-15T00:44:45.380-03:00</updated><title type='text'>The Windows Driver Developer's Digest</title><content type='html'>STUPID.SYS sample driver -- the minimal WDF driver used to illustrate Walter Oney's summary article on Windows Driver Framework&lt;br /&gt;&lt;br /&gt;SAMPLE.SYS -- the minimal kernel DLL used to illustrate Tim Robert's article on kernel-mode DLL&lt;br /&gt;&lt;br /&gt;PASSTHRU.SYS -- Tom Divine's augmented version of the DDK sample of the same name&lt;br /&gt;&lt;br /&gt;WINBUILD.ZIP -- James Antognini's example of driver building&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wd-3.com/wd3Downloads.htm"&gt;Sample Code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239428538191051?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239428538191051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239428538191051'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/windows-driver-developers-digest.html' title='The Windows Driver Developer&apos;s Digest'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239381516195719</id><published>2006-03-15T00:36:00.000-03:00</published><updated>2006-03-15T00:36:55.163-03:00</updated><title type='text'>Linux Virtual Server</title><content type='html'>Virtual server is a highly scalable and highly available server built on a cluster of real servers. The architecture of server cluster is fully transparent to end users, and the users interact with the system as if it were only a single high-performance virtual server. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linuxvirtualserver.org/whatis.html"&gt;LVS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239381516195719?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239381516195719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239381516195719'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/linux-virtual-server.html' title='Linux Virtual Server'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239369425149601</id><published>2006-03-15T00:33:00.000-03:00</published><updated>2006-03-15T00:34:54.253-03:00</updated><title type='text'>Lustre CFS</title><content type='html'>Cluster File Systems, Inc. is the leading developer of next generation technology for scalable high-performance file systems. Our Lustre® file system redefines scalability and has been designed from the ground up to meet the demands of the world's largest high-performance computer clusters.&lt;br /&gt;&lt;br /&gt;Lustre has been designed from the ground up to feature the highest levels of:&lt;br /&gt;&lt;br /&gt;reliability : Lustre features production-quality stability and failover, with zero single points of failure. More than 100 teraflops worldwide are deployed in production environments using Lustre to manage their data. &lt;br /&gt;&lt;br /&gt;scalability : Lustre is used on several of the world's largest supercomputers -- including the world #1 BlueGene/L, and tens of others on the most recent Top500 listing. &lt;br /&gt;&lt;br /&gt;performance : Metadata and I/O performance rates which are second to none, with your choice of hardware. &lt;br /&gt;&lt;br /&gt;management : Aggregate your petabytes of storage into a single group- or enterprise-wide file system. &lt;br /&gt;&lt;br /&gt;flexibility : Lustre's software solutions mean an end to proprietary hardware and vendor lock-ins. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clusterfs.com/index.html"&gt;Lustre CFS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239369425149601?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239369425149601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239369425149601'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/lustre-cfs.html' title='Lustre CFS'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239354751105538</id><published>2006-03-15T00:30:00.000-03:00</published><updated>2006-03-15T00:32:27.513-03:00</updated><title type='text'>Intel® C++ Compiler for Windows</title><content type='html'>Product Features &lt;br /&gt;&lt;br /&gt;Intel® C++ Compiler for Windows* helps software run at top speed and features compatibility with the tools that developers use. This compiler fully supports multi-core processors along with existing Intel® processors and architectures. Advanced optimization features deliver outstanding application performance on the latest Intel processors.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cwin/219652.htm"&gt;Intel® C++ Compiler for Windows&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239354751105538?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239354751105538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239354751105538'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/intel-c-compiler-for-windows.html' title='Intel® C++ Compiler for Windows'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239343224580230</id><published>2006-03-15T00:29:00.000-03:00</published><updated>2006-03-15T00:30:32.246-03:00</updated><title type='text'>How to Write a Windows XP Driver</title><content type='html'>Summary: This document describes the steps you should take to create a Microsoft® Windows® XP driver for your device. To create a Windows XP device driver:&lt;br /&gt;&lt;br /&gt;Install the current Windows DDK. Read the system requirements and installation instructions in the stand-alone Getting Started HTML file supplied with the DDK. &lt;br /&gt;&lt;br /&gt;Read Getting Started with Windows Drivers. This document guides you through the planning and decision-making process involved in making a Windows device driver from design through distribution.  You should also look through the DDK documentation for device-type-specific information. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.freepctech.com/pc/xp/xp00021.shtml"&gt;How to Write a Windows XP Driver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239343224580230?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239343224580230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239343224580230'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/how-to-write-windows-xp-driver.html' title='How to Write a Windows XP Driver'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239333269858384</id><published>2006-03-15T00:28:00.000-03:00</published><updated>2006-03-15T00:28:52.700-03:00</updated><title type='text'>Templates and Generics</title><content type='html'>Insomnia and being a workaholic is an interesting combination. It is amazing how much work can be accomplished in the eight hours before everyone else comes to work. J&lt;br /&gt;&lt;br /&gt;Anyways, I spent some time working on specifying generics in C++ yesterday so I figured I'd write about that today. Perhaps the most important message regarding generics is that they are not templates. That is evident in the C++ language design as it supports both generics and templates. At the PDC, I heard comments such as "generics are templates done right". This, sadly, is a misinformed opinion that too many people share&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/branbray/archive/2003/11/19/51023.aspx"&gt;Templates and Generics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239333269858384?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239333269858384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239333269858384'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/templates-and-generics.html' title='Templates and Generics'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239321849531867</id><published>2006-03-15T00:25:00.000-03:00</published><updated>2006-03-15T00:26:58.496-03:00</updated><title type='text'>1394 Node-Targeted Asynchronous Transfers</title><content type='html'>To understand Windows 1394 asynchronous transfer operation, one must understand the different types of addressing modes that the Windows 1394 bus driver uses.  Addressing modes determine how the bus driver interprets destination address information that is passed along with asynchronous transfer requests.  For Windows 2000 and earlier platforms, there were two modes of addressing when using asynchronous transfers normal-mode and raw-mode.  What these modes are and how they work is explained later.  For XP and later platforms, there is a new addressing mode called virtual-mode addressing.  Virtual-mode addressing is used for 1394 virtual devices.  The virtual device mechanism for 1394 was introduced with the Windows XP 1394 bus driver stack.  In order to fully understand 1394 asynchronous communication on Windows platforms, it is helpful to understand what 1394 virtual devices are and how they are used.  In a moment, I will take a step to the side and cover virtual devices in some detail.  As for asynchronous transfer addressing modes, none of these were documented in the Windows Device Driver Development Kit (DDK) help until about a year ago.  Even now the documentation does not explain how one goes about implementing some of these modes.  The following paragraphs will attempt to explain asynchronous addressing modes, and show some code that demonstrates how to go about implementing the different modes in a WDM device driver.  First, let us look at 1394 virtual devices.  If you do not care about 1394 virtual devices or if you are already familiar with them, you can just skip down to the section titled Asynchronous Transfers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wd-3.com/archive/1394NodeTransfers.htm"&gt;1394&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239321849531867?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239321849531867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239321849531867'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/1394-node-targeted-asynchronous.html' title='1394 Node-Targeted Asynchronous Transfers'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-24104990.post-114239261123218075</id><published>2006-03-15T00:11:00.000-03:00</published><updated>2006-03-15T00:24:20.133-03:00</updated><title type='text'>Memory Management 1</title><content type='html'>Introduction&lt;br /&gt;I’m writing this tutorial in an attempt to help you to write a memory manager for your own OS. I assume that you’ve decided to try and write your own OS kernel, and that you’ve got past the “boot-and-print-a-message” stage. Congratulations – you’ve got further than most people.&lt;br /&gt;&lt;br /&gt;A memory manager (that is, a physical memory manager) is one of the components at the lowest level of every operating system, and it is vital for the splitting-up of your computer’s memory. Note that there might be several memory managers in your kernel, each working at a different level. I’ll be explaining the lowest-level one here. The allocator here won’t work as a malloc() unless you’re happy with a 4096-byte granularity.&lt;br /&gt;&lt;br /&gt;Tim Robinson · timothy.robinson@ic.ac.uk · http://www.themoebius.org.uk/&lt;br /&gt;&lt;br /&gt;&lt;a href="http://osdever.net/tutorials/memory1.php?the_id=44"&gt;Bonafide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/24104990-114239261123218075?l=mswiczar.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239261123218075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24104990/posts/default/114239261123218075'/><link rel='alternate' type='text/html' href='http://mswiczar.blogspot.com/2006/03/memory-management-1.html' title='Memory Management 1'/><author><name>S3S!OW</name><uri>http://www.blogger.com/profile/17650435652587754776</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
