Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
4.0 KiB

  1. /*++
  2. Copyright (c) 1995-97 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. SrvInst.h
  6. Purpose:
  7. Driver Signing Class definition.
  8. Author:
  9. Patrick Vine (pvine) - 4 August 2000
  10. --*/
  11. #ifndef _SIGNING_HXX
  12. #define _SIGNING_HXX
  13. TCHAR cszNtprintInf[] = TEXT("ntprint.inf");
  14. TCHAR cszExtCompressedCat[] = TEXT(".CA_");
  15. TCHAR cszCatExt[] = TEXT("*.cat");
  16. TCHAR cszNT5Cat[] = TEXT("nt5prtx.cat");
  17. TCHAR cszNT5CatCompressed[] = TEXT("nt5prtx.ca_");
  18. TCHAR cszNT4CatX86[] = TEXT("nt4prtx.cat");
  19. TCHAR cszNT4CatAlpha[] = TEXT("nt4prta.cat");
  20. PLATFORM MIN_PLATFORM = PlatformAlpha;
  21. PLATFORM MAX_PLATFORM = PlatformAlpha64;
  22. //
  23. // MAX_KNOWN_CATS -> number of catalogs listed in the Known_Cats section.
  24. //
  25. const DWORD_PTR MAX_KNOWNCATS = 4;
  26. LPTSTR KnownCats[] = {cszNT5Cat,
  27. cszNT5CatCompressed,
  28. cszNT4CatX86,
  29. cszNT4CatAlpha};
  30. //
  31. // Cat file OsAttr definitions
  32. //
  33. const WCHAR OSATTR_VER = L'2';
  34. const WCHAR OSATTR_VER_WIN9X= L'1';
  35. const WCHAR OSATTR_ALL = L'X';
  36. const WCHAR OSATTR_GTEQ = L'>';
  37. const WCHAR OSATTR_LTEQ = L'-';
  38. const WCHAR OSATTR_LTEQ2 = L'<';
  39. const WCHAR OSATTR_OSSEP = L':';
  40. const WCHAR OSATTR_VERSEP = L'.';
  41. const WCHAR OSATTR_SEP = L',';
  42. class TDriverSigning
  43. {
  44. public:
  45. TDriverSigning();
  46. ~TDriverSigning();
  47. BOOL
  48. InitDriverSigningInfo(
  49. IN LPCTSTR pszServerName,
  50. IN LPTSTR pszInfName,
  51. IN LPCTSTR pszSource,
  52. IN PLATFORM platform,
  53. IN DWORD dwVersion,
  54. IN BOOL bWeb
  55. );
  56. BOOL
  57. CheckForCatalogFileInInf(
  58. IN LPCTSTR pszInfName,
  59. OUT LPTSTR *lppszCatFile OPTIONAL
  60. );
  61. BOOL
  62. CatInInf(
  63. VOID
  64. );
  65. BOOL
  66. SetAltPlatformInfo(
  67. IN HDEVINFO hDevInfo,
  68. IN HSPFILEQ CopyQueue
  69. );
  70. LPCTSTR
  71. GetCatalogFile(
  72. VOID
  73. );
  74. BOOL
  75. IsLocalAdmin(
  76. VOID
  77. );
  78. private:
  79. BOOL
  80. GetExternalCatFile(
  81. IN LPCTSTR pszInfName,
  82. IN LPCTSTR pszSource,
  83. IN DWORD dwVersion,
  84. IN BOOL bWeb
  85. );
  86. LPTSTR FindCatInDirectory(
  87. IN LPCTSTR pszSource
  88. );
  89. DWORD
  90. RemoveTempCat(
  91. VOID
  92. );
  93. DWORD
  94. UnCompressCat(
  95. IN LPTSTR pszINFName
  96. );
  97. LPTSTR
  98. GetINFLang(
  99. IN LPTSTR pszINFName
  100. );
  101. BOOL
  102. QualifyCatFile(
  103. IN LPCTSTR pszSource
  104. );
  105. DWORD
  106. GetSigningInformation(
  107. IN PLATFORM platform,
  108. IN DWORD dwVersion,
  109. OUT LPDWORD pdwMajorVersion,
  110. OUT LPDWORD pdwMinorVersion
  111. );
  112. BOOL
  113. CheckVersioning(
  114. IN LPWSTR pszOsAttr,
  115. IN PLATFORM platform,
  116. IN DWORD dwVersion,
  117. IN OUT LPDWORD pdwMajorVersion,
  118. IN OUT LPDWORD pdwMinorVersion
  119. );
  120. BOOL TranslateVersionInfo(
  121. IN OUT WCHAR *pwszMM,
  122. IN OUT long *plMajor,
  123. IN OUT long *plMinor,
  124. IN OUT WCHAR *pwcFlag
  125. );
  126. BOOL
  127. CreateCTLContextFromFileName(
  128. IN LPCTSTR pszFileName,
  129. OUT PCCTL_CONTEXT *ppCTLContext
  130. );
  131. BOOL
  132. SetMajorVersion(
  133. IN OSVERSIONINFO OSVerInfo
  134. );
  135. BOOL
  136. SetPlatform(
  137. IN LPCTSTR pszServerName
  138. );
  139. LPTSTR m_pszCatalogFileName;
  140. BOOL m_bCatInInf;
  141. BOOL m_bDeleteTempCat;
  142. BOOL m_bSetAltPlatform;
  143. SP_ALTPLATFORM_INFO m_AltPlat_Info;
  144. PLATFORM m_DSPlatform;
  145. DWORD m_DSMajorVersion;
  146. BOOL m_bIsLocalAdmin;
  147. };
  148. #endif