2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#ifndef ___internal_r3_win_h
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#define ___internal_r3_win_h
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#include "internal/iprt.h"
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#include <iprt/types.h>
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync/*******************************************************************************
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync* Structures and Typedefs *
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync*******************************************************************************/
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync/**
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync * Windows OS type as determined by rtSystemWinOSType().
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync *
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync * @note ASSUMPTIONS are made regarding ordering. Win 9x should come first, then
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync * NT. The Win9x and NT versions should internally be ordered in ascending
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync * version/code-base order.
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync */
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsynctypedef enum RTWINOSTYPE
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync{
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_UNKNOWN = 0,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_9XFIRST = 1,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_95 = kRTWinOSType_9XFIRST,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_95SP1,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_95OSR2,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_98,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_98SP1,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_98SE,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_ME,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_9XLAST = 99,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NTFIRST = 100,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NT31 = kRTWinOSType_NTFIRST,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NT351,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NT4,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_2K,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_XP,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_2003,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_VISTA,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_2008,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_7,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_8,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_81,
ee01650486823de6a197501459e4781ad4e4a54dvboxsync kRTWinOSType_10,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NT_UNKNOWN = 199,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync kRTWinOSType_NT_LAST = kRTWinOSType_UNKNOWN
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync} RTWINOSTYPE;
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync/**
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync * Windows loader protection level.
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync */
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsynctypedef enum RTR3WINLDRPROT
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync{
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync RTR3WINLDRPROT_INVALID = 0,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync RTR3WINLDRPROT_NONE,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync RTR3WINLDRPROT_NO_CWD,
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync RTR3WINLDRPROT_SAFE
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync} RTR3WINLDRPROT;
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync/*******************************************************************************
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync* Global Variables *
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync*******************************************************************************/
62184c10d4a848c16595c203aad10dcf3cb8cdaavboxsyncextern DECLHIDDEN(RTR3WINLDRPROT) g_enmWinLdrProt;
62184c10d4a848c16595c203aad10dcf3cb8cdaavboxsyncextern DECLHIDDEN(RTWINOSTYPE) g_enmWinVer;
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#ifdef _WINDEF_
62184c10d4a848c16595c203aad10dcf3cb8cdaavboxsyncextern DECLHIDDEN(HMODULE) g_hModKernel32;
62184c10d4a848c16595c203aad10dcf3cb8cdaavboxsyncextern DECLHIDDEN(HMODULE) g_hModNtDll;
62184c10d4a848c16595c203aad10dcf3cb8cdaavboxsyncextern DECLHIDDEN(OSVERSIONINFOEXW) g_WinOsInfoEx;
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#endif
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync#endif
2ebdf3d2131d683bde27a65eeef2450d8834fec9vboxsync