mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
Moved VerSetConditionMask in RTL so it can be exported from ntoskrnl too
svn path=/trunk/; revision=11580
This commit is contained in:
parent
11aba14d5f
commit
626b0a1f74
5 changed files with 67 additions and 87 deletions
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.110 2004/11/07 13:08:24 hyperion Exp $
|
||||
# $Id: makefile,v 1.111 2004/11/07 18:45:52 hyperion Exp $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
|
@ -122,9 +122,6 @@ STRING_OBJECTS = \
|
|||
string/strupr.o \
|
||||
string/wstring.o
|
||||
|
||||
VER_OBJECTS = \
|
||||
ver/ver.o
|
||||
|
||||
ARCH_OBJECTS = \
|
||||
$(RTL_I386_OBJECTS)
|
||||
|
||||
|
@ -137,8 +134,7 @@ TARGET_OBJECTS = \
|
|||
$(RTL_OBJECTS) \
|
||||
$(STDIO_OBJECTS) \
|
||||
$(STDLIB_OBJECTS) \
|
||||
$(STRING_OBJECTS) \
|
||||
$(VER_OBJECTS)
|
||||
$(STRING_OBJECTS)
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
DEP_EXCLUDE_FILTER = napi.%
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
*.d
|
||||
*.o
|
||||
*.sym
|
|
@ -1,76 +0,0 @@
|
|||
/* $Id: ver.c,v 1.1 2004/11/07 13:08:24 hyperion Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS NT Layer DLL
|
||||
* FILE: lib/ntdll/ver/ver.c
|
||||
* PURPOSE: Operating system version checking
|
||||
* PROGRAMMERS: KJK::Hyperion
|
||||
* HISTORY: 2004-11-07: Created (imported from Wine)
|
||||
*/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
/*
|
||||
Header hell made me do it, don't blame me. Please move these somewhere more
|
||||
sensible
|
||||
*/
|
||||
#define VER_EQUAL 1
|
||||
#define VER_GREATER 2
|
||||
#define VER_GREATER_EQUAL 3
|
||||
#define VER_LESS 4
|
||||
#define VER_LESS_EQUAL 5
|
||||
#define VER_AND 6
|
||||
#define VER_OR 7
|
||||
|
||||
#define VER_CONDITION_MASK 7
|
||||
#define VER_NUM_BITS_PER_CONDITION_MASK 3
|
||||
|
||||
#define VER_MINORVERSION 0x0000001
|
||||
#define VER_MAJORVERSION 0x0000002
|
||||
#define VER_BUILDNUMBER 0x0000004
|
||||
#define VER_PLATFORMID 0x0000008
|
||||
#define VER_SERVICEPACKMINOR 0x0000010
|
||||
#define VER_SERVICEPACKMAJOR 0x0000020
|
||||
#define VER_SUITENAME 0x0000040
|
||||
#define VER_PRODUCT_TYPE 0x0000080
|
||||
|
||||
#define VER_NT_WORKSTATION 0x0000001
|
||||
#define VER_NT_DOMAIN_CONTROLLER 0x0000002
|
||||
#define VER_NT_SERVER 0x0000003
|
||||
|
||||
ULONGLONG NTAPI VerSetConditionMask
|
||||
(
|
||||
IN ULONGLONG dwlConditionMask,
|
||||
IN DWORD dwTypeBitMask,
|
||||
IN BYTE dwConditionMask
|
||||
)
|
||||
{
|
||||
if(dwTypeBitMask == 0)
|
||||
return dwlConditionMask;
|
||||
|
||||
dwConditionMask &= VER_CONDITION_MASK;
|
||||
|
||||
if(dwConditionMask == 0)
|
||||
return dwlConditionMask;
|
||||
|
||||
if(dwTypeBitMask & VER_PRODUCT_TYPE)
|
||||
dwlConditionMask |= dwConditionMask << 7 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SUITENAME)
|
||||
dwlConditionMask |= dwConditionMask << 6 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SERVICEPACKMAJOR)
|
||||
dwlConditionMask |= dwConditionMask << 5 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SERVICEPACKMINOR)
|
||||
dwlConditionMask |= dwConditionMask << 4 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_PLATFORMID)
|
||||
dwlConditionMask |= dwConditionMask << 3 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_BUILDNUMBER)
|
||||
dwlConditionMask |= dwConditionMask << 2 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_MAJORVERSION)
|
||||
dwlConditionMask |= dwConditionMask << 1 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_MINORVERSION)
|
||||
dwlConditionMask |= dwConditionMask << 0 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
|
||||
return dwlConditionMask;
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/* $Id: version.c,v 1.3 2004/08/07 19:13:25 ion Exp $
|
||||
/* $Id: version.c,v 1.4 2004/11/07 18:45:52 hyperion Exp $
|
||||
*
|
||||
* PROJECT: ReactOS kernel
|
||||
* PURPOSE: Runtime code
|
||||
|
@ -98,4 +98,66 @@ RtlVerifyVersionInfo(
|
|||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
Header hell made me do it, don't blame me. Please move these somewhere more
|
||||
sensible
|
||||
*/
|
||||
#define VER_EQUAL 1
|
||||
#define VER_GREATER 2
|
||||
#define VER_GREATER_EQUAL 3
|
||||
#define VER_LESS 4
|
||||
#define VER_LESS_EQUAL 5
|
||||
#define VER_AND 6
|
||||
#define VER_OR 7
|
||||
|
||||
#define VER_CONDITION_MASK 7
|
||||
#define VER_NUM_BITS_PER_CONDITION_MASK 3
|
||||
|
||||
#define VER_MINORVERSION 0x0000001
|
||||
#define VER_MAJORVERSION 0x0000002
|
||||
#define VER_BUILDNUMBER 0x0000004
|
||||
#define VER_PLATFORMID 0x0000008
|
||||
#define VER_SERVICEPACKMINOR 0x0000010
|
||||
#define VER_SERVICEPACKMAJOR 0x0000020
|
||||
#define VER_SUITENAME 0x0000040
|
||||
#define VER_PRODUCT_TYPE 0x0000080
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
ULONGLONG NTAPI VerSetConditionMask
|
||||
(
|
||||
IN ULONGLONG dwlConditionMask,
|
||||
IN DWORD dwTypeBitMask,
|
||||
IN BYTE dwConditionMask
|
||||
)
|
||||
{
|
||||
if(dwTypeBitMask == 0)
|
||||
return dwlConditionMask;
|
||||
|
||||
dwConditionMask &= VER_CONDITION_MASK;
|
||||
|
||||
if(dwConditionMask == 0)
|
||||
return dwlConditionMask;
|
||||
|
||||
if(dwTypeBitMask & VER_PRODUCT_TYPE)
|
||||
dwlConditionMask |= dwConditionMask << 7 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SUITENAME)
|
||||
dwlConditionMask |= dwConditionMask << 6 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SERVICEPACKMAJOR)
|
||||
dwlConditionMask |= dwConditionMask << 5 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_SERVICEPACKMINOR)
|
||||
dwlConditionMask |= dwConditionMask << 4 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_PLATFORMID)
|
||||
dwlConditionMask |= dwConditionMask << 3 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_BUILDNUMBER)
|
||||
dwlConditionMask |= dwConditionMask << 2 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_MAJORVERSION)
|
||||
dwlConditionMask |= dwConditionMask << 1 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
else if(dwTypeBitMask & VER_MINORVERSION)
|
||||
dwlConditionMask |= dwConditionMask << 0 * VER_NUM_BITS_PER_CONDITION_MASK;
|
||||
|
||||
return dwlConditionMask;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $Id: ntoskrnl.def,v 1.197 2004/10/30 23:48:57 navaraf Exp $
|
||||
; $Id: ntoskrnl.def,v 1.198 2004/11/07 18:45:52 hyperion Exp $
|
||||
;
|
||||
; reactos/ntoskrnl/ntoskrnl.def
|
||||
;
|
||||
|
@ -1281,6 +1281,7 @@ SeTokenType@4
|
|||
SeUnlockSubjectContext@4
|
||||
SeUnregisterLogonSessionTerminatedRoutine@4
|
||||
SeValidSecurityDescriptor@8
|
||||
VerSetConditionMask@16
|
||||
WRITE_REGISTER_UCHAR@8
|
||||
WRITE_REGISTER_ULONG@8
|
||||
WRITE_REGISTER_USHORT@8
|
||||
|
|
Loading…
Reference in a new issue