Sunday, November 25, 2007

Visual Studio 2008 and .NET Framework 3.5 Training Kit on MSDN

As you all must be knowing that Microsoft has released .Net Framework 3.5. I was looking for some training material on .Net Framework 3.5 for one of my friend and I ended up here. Just download this, go through the PPT and if you think that you would like to start development on this, please let me know. I will post links to trial version of Visual Studio 2008 and complete download link of .Net Framework 3.5. Current one is the web based stub only, I think I will be able to find the complete package. The Visual Studio 2008 and .NET Framework 3.5 Training Kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2008 features and a variety of framework technologies including: LINQ, C# 3.0, Visual Basic 9, WCF, WF, WPF, ASP.NET AJAX, VSTO, CardSpace, SilverLight, Mobile and Application Lifecycle Management. Its a 72MB download but then nowadays who cares about the download size? :P

Thursday, October 18, 2007

What's Going On My Side

There were certain updates in my professional life and I thought I should share them with you. so here it goes. Approximately 1 year ago I was sitting in a beautiful conference hall looking at the stage where people were receiving their performance awards and I thought.... sigh....when I will get one of this? And fortunately... things went strange, and before I completed one year in this new company, I got an award for innovation along with other team members for a project I did in June-July. Also, I flied to Bangkok(This city has many good things other than what it is notoriously famous for, I will post it my experiences on my Personal Blog along with photographs I've taken and collected from friends who explored this ancient gateway of Asia), and there I received this award. The same day a composite video that we prepared received great accolade from the audience for being creative and light weight still conveying the message. Along with that there was one PoC we did which was presented there. Also I just completed 1 year with my current company and that makes me feel good as I never expected that I will survive if I leave Gujarat. Now soon I am looking forward to move further but still I've not decided exactly what direction I am headed to.

Tuesday, October 02, 2007

Brand New Cool Hotmail Domains

I was surfing.. yeah...at ..5 in the morning what else do you expect?.. and I found that Microsoft has launched this kewl site : http://www.coolhotmail.com/. It allows you to create a Microsoft Windows Live Mail Id with a custom domain name.
I've created a list of all of them and 3 hidden domain names also.(Check out the source code of the page to see what I mean by that). The hidden(but visible in my list below) domain names are : appyfizz.in, gobingo.in and bemyself.in. I am not sure whether this will work for existing A/C or not, but sure its a boon for new users. I also liked the way they have put the UI and color elements. A must see for web developers.

Where I Live?Who I Like?Who I Am?What I Like?I Don't Fit - II Don't Fit - II
bangalorerocks.in clubaamir.com iamgood.in iloveyoga.in apunkaid.com ontheedge.co.in
chennairocks.in clubabhishek.com iamhot.in ilovetennis.in clickass.in soupedup.in
delhirocks.com clubabhishek.in iammarried.in ilovesoccer.in coolmail.co.in clingonbling.co.in
punerocks.in clubaishwarya.com iamsingle.in iloveshuttle.in samepinch.in jamnation.in
punerocks.com clubaishwarya.in iamsizzling.com iloveshuttle.com samepinch.co.in ufoff.co.in
mumbairocks.in clubamitabh.com iamsizzling.in iloveoldmonk.com koolmail.in drunkfunk.in
mumbaimail.in clubamitabh.in iamcold.in ilovechess.in koolmail.co.in flemgems.co.in
kolkatarocks.in clubasin.com iambald.in ilovefootball.in heybaby.in crazyflamingo.co.in
iliveinmalabarhill.in clubasin.in iambad.in ilovegoafeni.com gobingo.in laughterclub.in
iliveingoa.com clubdhoni.com martinian.in ilovegolf.in bemyself.in freakyfridays.co.in
hyderabadrocks.in clubdhoni.in boscoite.com ilovehockey.in charsaubees.com gumgang.mobi
goarocks.in clubdravid.com globallyunique.in ilovekabbadi.com individuality.in hangoveradda.co.in
goarocks.com clubdravid.in dangerouslyhigh.in ilovekabbadi.in itsaboutme.in gullidandagang.mobi
goaisbliss.com clubhrithik.com bungeejumper.in ilovecars.in itsmychoice.in Ruleatwork.co.in
goagoagoa.com clubhrithik.in goballistic.in ilovebikes.in iwanttobeme.in Breaktherules.co.in
emailmumbai.com clubjyothika.com imjustadreamer.in ilovebhavans.in leavemealone.in Pindropsilence.co.in
delhirocks.in clubjyothika.in slipperysadhu.in ilovebasketball.in mememe.in medco.co.in
metroonmove.in clubkajol.com trancemusiclovers.in ilovebadminton.in memyself.in wicom.co.in
delhi4u.in clubkajol.in lover4life.co.in vadapaavrocks.in mogambokhushhua.com pinacle.co.in
delhiden.mobi clubkamal.com jinxed4ever.net appyfizz.in pocketmaar.com hellstuck.co.in
delhifevers.in clubkamal.in partyanimals.co.in Footballfever.co.in shri420.in ringtring.co.in
unwinddelhi.in clubkareena.com ndanuts.co.in stumped.co.in thatswhoiam.in Neversaydie.co.in
delhihaatrocks.in clubkareena.in ministryofsoundlovers.mobi hittiewicket.co.in wassup.co.in bhaagambhag.co.in
salaamdelhi.in clubpreity.com Underpaid.co.in onetuppie.co.in freaknetwork.in headsyatails.co.in
dillidilwaloki.co.in clubpreity.in Overworked.co.in squarecut.co.in dancefreak.in mastblast.co.in
dillimanch.co.in clubrajni.com Bornleader.co.in chauka.co.in feelthebeat.in iamwhatiam.in
saddidillibindas.mobi clubrajni.in Peoplesperson.co.in pitchcontrol.co.in coldsweat.in ilovefuel.com
rugbyrocks.in berealistic.co.in ilovefuel.in
bhangrarocks.in
studentzindabad
shri420.in
bhangrarocks.com
gillidandagang.mobi


'Office Live Workspace' Announced

Hurrray... I was so much tired of Google's Online Spreadsheet.. that I stopped using it... at all..and now... here it comes.. just check it out.. you will have to wait for a while.. but yes.. you can pre-register...so go ahead... hit it hard...I am damn sure that UI is gonna be 1000 time better than the Google one...
Just check out the screenshots for registration and basic info.

Click here to go for Office Live Workspace.

Thursday, September 13, 2007

How to prevent a user from launching multiple instances of an application - .Net C# Code

Recently one of my friend asked me to solve a simple problem. How to prevent an end user from launching multiple instances of your application. Instantly it came to my mind - A Mutex(Very expensive resource though...) can be used and I digged some of my old work and here it is. So enjoy... this is far more better than going into processes list and validating your application is running or not?
using
System;
using
System.Windows.Forms ;
using System.Collections.Generic;

namespace

Skynet.Apps.NetBuddy
{
static class Program
{
/// <summary>
///
Define the Mutex
///
</summary>
private static System.Threading. Mutex PreviousInstance;

/// <summary>
///
The main entry point for the application.
///
</summary>
[STAThread
]
static void
Main()
{
Application
.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false
);
PreviousInstance = new System.Threading.Mutex(true , "NetBuddy");//Create a Mutex

if (PreviousInstance.WaitOne(0, false)) //Check for Existing Mutex
{
Application.EnableVisualStyles();
//Enable XP/Vista Visual Styles
Application.Run(new frmMain());
//Run Main Form
}
else
{
MessageBox .Show("You are trying to launch multiple Instance of NetBuddy." + Environment .NewLine + "This instance will terminate now.", "NetBuddy Warning", MessageBoxButtons.OK, MessageBoxIcon.Error);
//Warn User that another instance is running
}

}

}

}

Friday, September 07, 2007

GWT - Google Web Toolkit comes out of Beta

Before you come to read the main topic that is just a link and a paragraph, please read the mail below
------------------

From: Chinmay Patel
Date: May 18, 2006 2:14 PM
Subject: Introducing GWT - Google Web Toolkit
To: Team ESS

Hi All,

As we all know and believe, AJAX has the power to make our Web Apps more dynamic and more user friendly and more likely to Win Apps. However AJAX development is often complicated, with much of the development time spent working around browser quirks (Well... we target the great IE so we've an advantage over here) and the fragility of AJAX components(MSXML, Scripting and the CodeBehind in our case). Trust me, I know the development of our own AJAX apps caused us no small amount of AJAX-induced frustration.
And now, after working a lot on Scripting part of AJAX as well as codebehinds that work with AJAX, Today I see
this in my mailbox, an exceptional toolkit for AJAX Developers - GWT ie Google Web Toolkit.

As they say on official GWT Page:

Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript's lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.

GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.

I believe we all will benefit a lot from this toolkit, though its made for Java we've got the skills to make it work with .Net.
So here it is with all the best wishes and faster AJAX Development
Download GWT
--
Thanks,
Chinmay Patel

Free thyself from the past, free thyself from the future, free thyself from the present. Crossing to the farther shore of existence, with mind released everywhere, no more shalt thou come to birth and decay.

------------------
Almost after a year I am revisiting the topic, as last week GWT came out of Beta and now is a Release Product. They've gone through many updates since last year and presents a really nice tool for Java developers as I have not tried it for .Net I won't comment on that part. Any takers?
Here is the link for latest information on Official Google Blog on GWT.

Wednesday, September 05, 2007

Yahoo! punches back to the spammers

Few days back, as usual I was tired... bored and thought of killing time so I fired up Y! Messenger and logged in and straightway went to chat rooms...and voila... I was shocked... each and every category I saw... Computer and Internet, Gujarat Global Chat, Gaming, etc was flooded with users. Each room was running on top of its capacity. Instantly I came to know that some massive and pretty smart Bot-Net was in action and was playing Havoc on Y!'s network. Infact there were some funny side effect(This is an assumption, I am not sure about it though), I was getting random users in my Y! popped up and some other random users were seeing me signing in ie even though I was not in their list, they got the notification when I logged in and logged out. It was funny... and not-so-funny for Y!. However within few days this got fixed and I was relaxed. I really don't like strangers asking me question how I popped up on their screen..and for that matter you also will not really like that. So actually I had to log out as it was virtually impossible to locate the room with real people... everywhere there were BOTS and I sighed.. and signed off...
And today... right now I logged in again to the Y! chat and I see one new one-inch punch from Y! for all the spammers and BOTs. No it is not some kind of Digital Martial Art, its a technology that is in use from quite a time and very popular among Web 2.0 outcomes - CAPTCHA. Y! has introduced CAPTCHA for Chat Rooms so whenever you try to go to any of the Chat Room it gives you a link to open when you open this link it presents you a nice interface to enter CAPTCHA information and once you do it successfully it allows you to enter and I must tell you it is working really fine now I see rooms much cleaner then they were ever used to be. And though it looks pretty lame to go to a web browser window before you actually can sign into a Windows based application but for what it is worth, I must say it works like a charm. Though I was wondering maybe this browser based authentication is meant to provide support to non-Y! Messenger chat clients like Trillian(Oh! Only I know how much eager I am for Trillian Astra!), YahELite, Pidgin(formerly known as Gaim) etc.Lets hope that soon they will have some built-in mechanism so atleast you can enter CAPTCHA in the chat client itself and enjoy Y! Chat Rooms.

A bug in Gmail

I have been using Gmail since its launch and I am really happy with the service they provide and the best part.. its free. Except some really nasty incidents Gmail has been almost bug free. However when you spend a lot of time with something eventually you will start seeing stuff that you might not notice otherwise. So here is a UI related bug and I've reported it two times and still there is no action that they've taken from their side so I thought I must publish it. Steps to reproduce this bug - Open your Inbox. - Check title, it will say Gmail - Inbox(Number of Unread Emails in the Inbox) - Now click on Settings click on the top-right side navigation - It will load Settings Page in the main list pane but now see the title... oops...:P

Thursday, August 23, 2007

Microsoft launches Tafiti

A brand new concept based on Microsoft Technologies(Live Search and Silverlight) http://www.tafiti.com has been launched. Though it is similar to a mashup, GUI is amazing and search is also pretty quick. Please wait while we get more info on this.

What is Tafiti?
Tafiti, which means "do research" in Swahili, is an experimental search front-end from Microsoft, designed to help people use the Web for research projects that span multiple search queries and sessions by helping visualize, store, and share research results. Tafiti uses both Microsoft Silverlight and Live Search to explore the intersection of richer experiences on the Web and the increasing specialization of search.
A snapshot is attached of the tree-view mode. :P

Wednesday, August 08, 2007

Check out new Y! Messenger built on nextgen Windows Presentation Foundation

I was roaming around (As usual) and I found this : http://messenger.yahoo.com/windowsvista.php . It seems WPF will make a huge change the way our application UIs are designed today. Let's hope for the best from big giants like MS, Y!, Google, IBM and wait for other rocking implementation of WPF. I am also in process of compiling some nice applications built on WPF\E ie Silverlight. Once I get a good number of applications I will put it in a page.

Friday, August 03, 2007

Boot.INI Options A to Z

I will not give the names, but many of my friends have asked me some times questions regarding Boot.ini and I have answered them most of the times. Today I found a nice article about Boot.ini which seems to have a lot of content from http://www.sysinternals.com and almost all the answers possibly known to us.
There are number of BOOT.INI switches that are useful for driver developers that wish to test their drivers under a variety of different system configurations without having to have a separate machine for every one. For example, limiting the amount of memory NT sees can be useful for stressing memory loads, and limiting the number of processors for testing scalability. I've compiled a complete list of the options that BOOT.INI currently supports. This list is reproduced in the Startup, Shutdown and Crashes chapter of Windows Internals, where you'll find more information about the boot process. Entries in red were introduced in Windows 2000 and those in blue introduced in Windows XP or Windows Server 2003.

Note: to see what options your system has booted with examine HKLM/System/CurrentControlSet/Control/SystemStartOptions.

/3GB
Increases the size of the user process address space from 2 GB to 3 GB (and therefore reduces the size of system space from 2 GB to 1 GB). Giving virtual-memory- intensive applications such as database servers a larger address space can improve their performance. For an application to take advantage of this feature, however, two additional conditions must be met: the system must be running Windows XP, Windows Server 2003, Windows NT 4 Enterprise Edition, Windows 2000 Advanced Server or Datacenter Server and the application .exe must be flagged as a 3-GB-aware application. Applies to 32-bit systems only.

/BASEVIDEO
Causes Windows to use the standard VGA display driver for GUI-mode operations.

/BAUDRATE=
Enables kernel-mode debugging and specifies an override for the default baud rate (19200) at which a remote kernel debugger host will connect. Example: /BAUDRATE=115200.

/BOOTLOG
Causes Windows to write a log of the boot to the file %SystemRoot%Ntbtlog.txt.

/BOOTLOGO
Use this switch to have Windows XP or Windows Server 2003 display an installable splash screen instead of the standard splash screen. First, create a 16-color (any 16 colors) 640x480 bitmap and save it in the Windows directory with the name Boot.bmp. Then add "/bootlogo /noguiboot" to the boot.ini selection.

/BREAK
Causes the hardware abstraction layer (HAL) to stop at a breakpoint at HAL initialization. The first thing the Windows kernel does when it initializes is to initialize the HAL, so this breakpoint is the earliest one possible. The HAL will wait indefinitely at the breakpoint until a kernel-debugger connection is made. If the switch is used without the /DEBUG switch, the system will Blue Screen with a STOP code of 0x00000078 (PHASE0_ EXCEPTION).

/BURNMEMORY=
Specifies an amount of memory Windows can't use (similar to the /MAXMEM switch). The value is specified in megabytes. Example: /BURNMEMORY=128 would indicate that Windows can't use 128 MB of the total physical memory on the machine.

/CHANNEL=
Used on conjunction with /DEBUGPORT=1394 to specify the IEEE 1394 channel through which kernel debugging communications will flow. This can be any number between 0 and 62 and defaults to 0 if not set.

/CLKLVL
Causes the standard x86 multiprocessor HAL (Halmps.dll) to configure itself for a level-sensitive system clock rather then an edge-triggered clock. Level-sensitive and edge-triggered are terms used to describe hardware interrupt types.

/CMDCONS
Passed when booting with into the Recovery Console.

/CRASHDEBUG
Causes the kernel debugger to be loaded when the system boots, but to remain inactive unless a crash occurs. This allows the serial port that the kernel debugger would use to be available for use by the system until the system crashes (vs. /DEBUG, which causes the kernel debugger to use the serial port for the life of the system session).

/DEBUG
Enables kernel-mode debugging.

/DEBUGPORT=
Enables kernel-mode debugging and specifies an override for the default serial (usually COM2 on systems with at least two serial ports) to which a remote kernel-debugger host is connected. Windows XP and Windows Server 2003 also support debugging through accept IEEE 1394 ports. Examples: /DEBUGPORT=COM2, /DEBUGPORT=1394.

/EXECUTE
This option disables no-execute protection. See the /NOEXECUTE switch for more information.

/FASTDETECT
Default boot option for Windows. Replaces the Windows NT 4 switch /NOSERIALMICE. The reason the qualifier exists (vs. just having NTDETECT perform this operation by default) is so that NTDETECT can support booting Windows NT 4. Windows Plug and Play device drivers perform detection of parallel and serial devices, but Windows NT 4 expects NTDETECT to perform the detection. Thus, specifying /FASTDETECT causes NTDETECT to skip parallel and serial device enumeration (actions that are not required when booting Windows), whereas omitting the switch causes NTDETECT to perform this enumeration (which is required for booting Windows NT 4).

/INTAFFINITY
Directs the standard x86 multiprocessor HAL (Halmps.dll) to set interrupt affinities such that only the highest numbered processor will receive interrupts. Without the switch, the HAL defaults to its normal behavior of letting all processors receive interrupts.
/KERNEL=
/HAL=
Enable you to override Ntldr's default filename for the kernel image (Ntoskrnl.exe) and/or the HAL (Hal.dll). These options are useful for alternating between a checked kernel environment and a free (retail) kernel environment or even to manually select a different HAL. If you want to boot a checked environment that consists solely of the checked kernel and HAL, which is typically all that is needed to test drivers, follow these steps on a system installed with the free build:
Copy the checked versions of the kernel images from the checked build CD to your WindowsSystem32 directory, giving the images different names than the default. For example, if you're on a uniprocessor, copy Ntoskrnl.exe to Ntoschk.exe and Ntkrnlpa.exe to Ntoschkpa.exe. If you're on a multiprocessor, copy Ntkrnlmp.exe to Ntoschk.exe and Ntkrpamp.exe to Ntoschkpa.exe. The kernel filename must be an 8.3-style short name.
Copy the checked version of the appropriate HAL needed for your system from I386Driver.cab on the checked build CD to your WindowsSystem32 directory, naming it Halchk.dll. To determine which HAL to copy, open WindowsRepairSetup.log and search for Hal.dll; you'll find a line like WINDOWSsystem32 hal.dll="halacpi.dll","1d8a1". The name immediately to the right of the equals sign is the name of the HAL you should copy. The HAL filename must be an 8.3-style short name.
Make a copy of the default line in the system's Boot.ini file.
In the string description of the boot selection, add something that indicates that the new selection will be for a checked build environment (for example, "Windows XP Professional Checked").
Add the following to the end of the new selection's line: /KERNEL= NTOSCHK.EXE /HAL= HALCHK.DLL
Now when the selection menu appears during the boot process you can select the new entry to boot a checked environment or select the entry you were using to boot the free build.

/LASTKNOWNGOOD
Causes the system to boot as if the LastKnownGood boot option was selected.

/MAXMEM=
Limits Windows to ignore (not use) physical memory beyond the amount indicated. The number is interpreted in megabytes. Example: /MAXMEM=32 would limit the system to using the first 32 MB of physical memory even if more were present.
For the standard x86 multiprocessor HAL (Halmps.dll), forces cluster-mode Advanced Programmable Interrupt Controller (APIC) addressing (not supported on systems with an 82489DX external APIC interrupt controller).

/MININT
This option is used by Windows PE (Preinstallation Environment) and causes the Configuration Manager to load the Registry SYSTEM hive as a volatile hive such that changes made to it in memory are not saved back to the hive image.

/NODEBUG
Prevents kernel-mode debugging from being initialized. Overrides the specification of any of the three debug-related switches, /DEBUG, /DEBUGPORT, and /BAUDRATE.

/NOEXECUTE
This option is only available on 32-bit versions of Windows when running on processors supporting no-execute protection. It enables no-execute protection (also known as Data Execution Protection - DEP), which results in the Memory Manager marking pages containing data as no-execute so that they cannot be executed as code. This can be useful for preventing malicious code from exploiting buffer overflow bugs with unexpected program input in order to execute arbitrary code. No-execute protection is always enabled on 64-bit versions of Windows on processors that support no-execute protection. There are several options you can specify with this switch:
/NOEXECUTE=OPTIN Enables DEP for core system images and those specified in the DEP configuration dialog.
/NOEXECUTE=OPTOUT Enables DEP for all images except those specified in the DEP configuration dialog.
/NOEXECUTE=ALWAYSON Enables DEP on all images.
/NOEXECUTE=ALWAYSOFF Disables DEP.
/NOGUIBOOT
Instructs Windows not to initialize the VGA video driver responsible for presenting bitmapped graphics during the boot process. The driver is used to display boot progress information, so disabling it will disable the ability of Windows to show this information.

/NOLOWMEM
Requires that the /PAE switch be present and that the system have more than 4 GB of physical memory. If these conditions are met, the PAE-enabled version of the Windows kernel, Ntkrnlpa.exe , won't use the first 4 GB of physical memory. Instead, it will load all applications and device drivers, and allocate all memory pools, from above that boundary. This switch is useful only to test device driver compatibility with large memory systems.

/NOPAE
Forces Ntldr to load the non-Physical Address Extension (PAE) version of the Windows kernel, even if the system is detected as supporting x86 PAEs and has more than 4 GB of physical memory.

/NOSERIALMICE=[COMx COMx,y,z...]
Obsolete Windows NT 4 qualifier—replaced by the absence of the /FASTDETECT switch. Disables serial mouse detection of the specified COM ports. This switch was used if you had a device other than a mouse attached to a serial port during the startup sequence. Using /NOSERIALMICE without specifying a COM port disables serial mouse detection on all COM ports. See Microsoft Knowledge Base article Q131976 for more information.

/NUMPROC=
Specifies the number of CPUs that can be used on a multiprocessor system. Example: /NUMPROC=2 on a four-way system will prevent Windows from using two of the four processors.

/ONECPU
Causes Windows to use only one CPU on a multiprocessor system.

/PAE
Causes Ntldr to load Ntkrnlpa.exe, which is the version of the x86 kernel that is able to take advantage of x86 PAEs. The PAE version of the kernel presents 64-bit physical addresses to device drivers, so this switch is helpful for testing device driver support for large memory systems.

/PCILOCK
Stops Windows from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured by the BIOS. See Microsoft Knowledge Base article Q148501 for more information.

/RDPATH=
Specifies the path to a System Disk Image (SDI) file, which can be on the network, that the system will use to boot from. Often used in conjunction with the /RDIMAGEOFFSET= flag to indicate to NTLDR where in the file the system image starts.

/REDIRECT
Introduced with Windows XP. Used to cause Windows to enable Emergency Management Services (EMS) that reports boot information and accepts system management commands through a serial port. Specify serial port and baudrate used in conjunction with EMS with redirect= and redirectbaudrate= lines in the [boot loader] section of the Boot.ini file.

/SAFEBOOT:
Specifies options for a safe boot. You should never have to specify this option manually, since Ntldr specifies it for you when you use the F8 menu to perform a safe boot. (A safe boot is a boot in which Windows only loads drivers and services that are specified by name or group under the Minimal or Network registry keys under HKLMSYSTEMCurrentControlSetControlSafeBoot.) Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support, respectively. The DSREPAIR (Directory Services Repair) switch causes Windows to boot into a mode in which it restores the Active Directory directory service from a backup medium you present. An additional option you can append is (ALTERNATESHELL), which tells Windows to use the program specified by the HKLMSYSTEMCurrentControlSet SafeBootAlternateShell value as the graphical shell rather than to use the default, which is Windows Explorer.

/SCSIORDINAL:
Directs Windows to the SCSI ID of the controller. (Adding a new SCSI device to a system with an on-board SCSI controller can cause the controller's SCSI ID to change.) See Microsoft Knowledge Base article Q103625 for more information.

/SDIBOOT=
Used in Windows XP Embedded systems to have Windows boot from a RAM disk image stored in the specified System Disk Image (SDI) file.

/SOS
Causes Windows to list the device drivers marked to load at boot time and then to display the system version number (including the build number), amount of physical memory, and number of processors.

/TIMERES=
Sets the resolution of the system timer on the standard x86 multiprocessor HAL (Halmps.dll). The argument is a number interpreted in hundreds of nanoseconds, but the rate is set to the closest resolution the HAL supports that isn't larger than the one requested. The HAL supports the following resolutions:

Hundreds of nanoseconds Milliseconds (ms)
9766 0.98
19532 2.00
39063 3.90
78125 7.80

The default resolution is 7.8 ms. The system timer resolution affects the resolution of waitable timers. Example: /TIMERES=21000 would set the timer to a resolution of 2.0 ms.

/USERVA=
This switch is only supported on Windows XP and Windows Server 2003. Like the /3GB switch, this switch gives applications a larger address space. Specify the amount in MB between 2048 and 3072. This switch has the same application requirements as the /3GB switch and requires that the /3GB switch be present. Applies to 32-bit systems only.

/WIN95
Directs Ntldr to boot the Consumer Windows boot sector stored in Bootsect.w40. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.

/WIN95DOS
Directs Ntldr to boot the MS-DOS boot sector stored in Bootsect.dos. This switch is pertinent only on a triple-boot system that has MS-DOS, Consumer Windows, and Windows installed. See Microsoft Knowledge Base article Q157992 for more information.

/YEAR=
Instructs the Windows core time function to ignore the year that the computer's real-time clock reports and instead use the one indicated. Thus, the year used in the switch affects every piece of software on the system, including the Windows kernel. Example: /YEAR=2001. (This switch was created to assist in Y2K testing.)

Thanks to Jonas Fischer for pointing out the PCILOCK and NOSERIALMICE switches. Thanks to Rob Green for information on the FASTDETECT switch.

Copyright © 1996-2004 Mark Russinovich from www.sysinternals.com