It seems that _SECURE_SCL_THROWS is deprecated in Visual Studio C++ 2010

It seems that _SECURE_SCL_THROWS is deprecated in Visual Studio C++ 2010. Because include file ‘Microsoft Visual Studio 10.0\VC\include\yvals.h’ has the following code block:

#if _SECURE_SCL_THROWS
#ifndef _SILENCE_DEPRECATION_OF_SECURE_SCL_THROWS
...
#undef _SECURE_SCL_THROWS
#pragma _CRT_WARNING( _DEPRECATE_SECURE_SCL_THROWS )
...

It gets undefined, and if you search c++ header files, there are no references to _SECURE_SCL_THROWS anymore. The strange part is, that latest documentation still have reference to _SECURE_SCL_THROWS, which states that it is valid macro, and ‘Defines whether incorrect use of Checked Iterators causes an exception or a program termination’.

The good news is, that _SECURE_SCL is enabled by default, that causes _ITERATOR_DEBUG_LEVEL to be enabled, that causes iterators to break program debug version if you do something wrong with stl iterators.

Windows XP menu ‘Add mirror’ greyed out

Today I was trying to make a software RAID 1 in Windows XP Professional. I thought I have done that a couple times, but today somehow menu Add mirror stayed inactive.

I did a google search and to my surprise two KB articles from Microsoft support came out.

They both have the following paragraph:

You cannot create mirrored volumes on computers that are running Windows XP Home Edition, Windows XP Professional or Windows XP 64-Bit Edition. However, you can use a computer that is running Windows XP Professional to create mirrored volumes on remote computers that are running Windows 2000 Server, Windows 2000 Advanced Server, or Windows 2000 Datacenter Server. You must have administrative privileges on the remote computer to do this.

So how it is possible, that I have created such volumes in the past? Perhaps in Windows Server or in my dreams.

Also, there is a known hack that involves changing system files with a hex editor, but this is one of my production machines, so I will not take a risk, and I would not recommend this hack to anyone. Use the following link on your own risk (I warned you): How to enable software RAID 1 in Windows XP (hack).

VMware vSphere Client errors on Windows 7

Trying to start VMware vSphere Client on Windows 7 to connect ESX / ESXi machine or vCenter, throws two error boxes:
Could Not Connect
---
Error parsing the server "vcenter.lan" "clients.xml" file.
Login will continue, contact your system administrator.

and

Error
---
The type initializer for 'VirtualInfrastructure.Utils.HttpWebRequestProxy' threw an exception.

Searched VMware forums without any luck. VMware recommendation is to use XP mode.

However there is a workaround.

Fix VMware vSphere Client errors on Windows 7

Take a System.dll file from non Windows 7 machine, with latest Microsoft .net updates. Usually:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll

Copy it to folder Fix under vSphere installation folder, for example:
C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\FIX\

In VpxClient.exe.config file add the following tags runtime (3 lines), marked with bold:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.net>
    <connectionManagement>
      <clear/>
      <add address="*" maxconnection="8" />
    </connectionManagement>
  </system.net>
  <appSettings>
    <add key = "protocolports" value = "https:443"/>
  </appSettings>
  <runtime>
    <developmentMode developerInstallation="true"/>
  </runtime>
</configuration>

Then create batch file (this is how you will launch vSphere Client), with the following content:
SET DEVPATH=%ProgramFiles%\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\FIX
"%ProgramFiles%\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe"

P.S. Of course, this is not an official workaround, but it works for me on Windows 7 Ultimate 32-bit version (System.dll was copied from Windows Vista Ultimate 32-bit). Use it at your own risk.