VS2010 - Cambio de estructura en CryptoAPI - v7.0A Vs v6.0A - WinCrypt.h

InC:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinCrypt.h, la definición deCERT_CHAIN_ENGINE_CONFIG e

typedef struct _CERT_CHAIN_ENGINE_CONFIG {

    DWORD       cbSize;
    HCERTSTORE  hRestrictedRoot;
    HCERTSTORE  hRestrictedTrust;
    HCERTSTORE  hRestrictedOther;
    DWORD       cAdditionalStore;
    HCERTSTORE* rghAdditionalStore;
    DWORD       dwFlags;
    DWORD       dwUrlRetrievalTimeout;      // milliseconds
    DWORD       MaximumCachedCertificates;
    DWORD       CycleDetectionModulus;

*#if (NTDDI_VERSION >= NTDDI_WIN7)
    HCERTSTORE  hExclusiveRoot;
    HCERTSTORE  hExclusiveTrustedPeople;
#endif*

} CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG;

Estoy usando Visual Studio 2010 en una máquina XP sp3, en cuyo caso, espero que los siguientes dos miembros en la estructura anterior se atenúen. Pero esto no está sucediendo,

#if (NTDDI_VERSION >= NTDDI_WIN7)
    HCERTSTORE  hExclusiveRoot;
    HCERTSTORE  hExclusiveTrustedPeople;
#endif

NTDDI_VERSION a su vez se define ensdkddkver.h como sigue, y_WIN32_WINNT de alguna manera toma el valor deNTDDI_WIN7 que en mi caso es incorrecto ya que el mío es una máquina XP SP3.

#if !defined(_WIN32_WINNT) && !defined(_CHICAGO_)
#define  _WIN32_WINNT   0x0601
#endif
#ifndef NTDDI_VERSION
#ifdef _WIN32_WINNT
// set NTDDI_VERSION based on _WIN32_WINNT
#define NTDDI_VERSION   NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT)
#else
#define NTDDI_VERSION   0x06010000
#endif
#endif

Los dos miembros anteriores de la estructuraCERT_CHAIN_ENGINE_CONFIG en cuestión no está presente enC:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinCrypt.hPero mi proyecto de Visual Studio 2010 extrae automáticamente los archivos de encabezado y lib deC:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinCrypt.h Debido a las estructuras en conflicto, estoy recibiendoparameter is incorrect

Por favor, ¿cómo puedo superar este problema?

Debo instalar Visual Studio 2010 sp1?

I encontró una referencia en la web donde dice que inicializar la estructura resolverá el problema, pero no lo hará, ya que los dos parámetros en cuestión no se atenuarán y se incorporarán durante la construcción.

ACTUALIZACIÓN1:

Configuración de mi proyecto:

$ (VCInstalDir) -> C: \ Archivos de programa \ Microsoft Visual Studio 10.0 \ VC

$ (WindowsSdkDir) -> C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.0A

$ (FrameworkSdkDir) -> C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v7.0A

Configuración de archivos de la biblioteca,

$(VCInstallDir)lib
$(VCInstallDir)atlmfc\lib
$(WindowsSdkDir)lib
$(FrameworkSDKDir)\lib

UPDATE 2: Mis definiciones de preprocesador son

WIN32;_DEBUG;_WINDOWS;_USRDLL;MY_DLL_EXPORTS;%(PreprocessorDefinitions)

% (PreprocessorDefinitions) valores heredados de la siguiente manera

_WINDLL
_MBCS

Gracia

Respuestas a la pregunta(2)

Su respuesta a la pregunta