From e1f75c1401c5391a123daa2f59af7544a3418195 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 21 Oct 2013 11:26:16 -0400 Subject: [PATCH] Windows: Store OS version as a global In DriverEntry() RtlGetVersion() is used to obtain the OS version information. Store the result in a global structure that can be used elsewhere to make run time decisions based upon the OS. Change-Id: I194e7da6858d1dea755d8de82a9bee70e63ade4d Reviewed-on: http://gerrit.openafs.org/10350 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSData.cpp | 6 ++++++ src/WINNT/afsrdr/kernel/lib/AFSInit.cpp | 9 ++++----- src/WINNT/afsrdr/kernel/lib/Include/AFSExtern.h | 2 ++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSData.cpp b/src/WINNT/afsrdr/kernel/lib/AFSData.cpp index c8098ca99..9e5a2915e 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSData.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSData.cpp @@ -120,4 +120,10 @@ PAFSRtlSetGroupSecurityDescriptor AFSRtlSetGroupSecurityDescriptor = NULL; SID_IDENTIFIER_AUTHORITY SeWorldSidAuthority = {SECURITY_WORLD_SID_AUTHORITY}; +// +// System State Information +// + +RTL_OSVERSIONINFOW AFSRtlSysVersion; + } diff --git a/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp b/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp index 240afa1db..f25f5d556 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp @@ -63,7 +63,6 @@ DriverEntry( PDRIVER_OBJECT DriverObject, UNICODE_STRING uniDeviceName; ULONG ulIndex = 0; UNICODE_STRING uniRoutine; - RTL_OSVERSIONINFOW sysVersion; BOOLEAN bExit = FALSE; @@ -116,12 +115,12 @@ DriverEntry( PDRIVER_OBJECT DriverObject, RegistryPath->Buffer, RegistryPath->Length); - RtlZeroMemory( &sysVersion, + RtlZeroMemory( &AFSRtlSysVersion, sizeof( RTL_OSVERSIONINFOW)); - sysVersion.dwOSVersionInfoSize = sizeof( RTL_OSVERSIONINFOW); + AFSRtlSysVersion.dwOSVersionInfoSize = sizeof( RTL_OSVERSIONINFOW); - RtlGetVersion( &sysVersion); + RtlGetVersion( &AFSRtlSysVersion); #if 0 // @@ -139,7 +138,7 @@ DriverEntry( PDRIVER_OBJECT DriverObject, // Mandatory Labels only exist on those operating systems. // - if( sysVersion.dwMajorVersion >= 6) + if( AFSRtlSysVersion.dwMajorVersion >= 6) { RtlInitUnicodeString( &uniRoutine, L"RtlSetSaclSecurityDescriptor"); diff --git a/src/WINNT/afsrdr/kernel/lib/Include/AFSExtern.h b/src/WINNT/afsrdr/kernel/lib/Include/AFSExtern.h index 483261448..ab7c1a001 100644 --- a/src/WINNT/afsrdr/kernel/lib/Include/AFSExtern.h +++ b/src/WINNT/afsrdr/kernel/lib/Include/AFSExtern.h @@ -103,6 +103,8 @@ extern PAFSRtlSetGroupSecurityDescriptor AFSRtlSetGroupSecurityDescriptor; extern SID_IDENTIFIER_AUTHORITY SeWorldSidAuthority; +extern RTL_OSVERSIONINFOW AFSRtlSysVersion; + } #endif /* _AFS_EXTERN_H */ -- 2.39.5