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.

226 lines
8.6 KiB

  1. //
  2. // Driver Verifier UI
  3. // Copyright (c) Microsoft Corporation, 1999
  4. //
  5. //
  6. //
  7. // module: VrfUtil.h
  8. // author: DMihai
  9. // created: 11/1/00
  10. //
  11. // Description:
  12. //
  13. #ifndef __VRF_UTIL_H_INCLUDED__
  14. #define __VRF_UTIL_H_INCLUDED__
  15. //
  16. // ARRAY_LENGTH macro
  17. //
  18. #ifndef ARRAY_LENGTH
  19. #define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( array[ 0 ] ) )
  20. #endif //#ifndef ARRAY_LENGTH
  21. //
  22. // Forward declarations
  23. //
  24. class CRuntimeVerifierData;
  25. ///////////////////////////////////////////////////////////////////////////
  26. //
  27. // Report an error using a dialog box or a console message.
  28. // The message format string is loaded from the resources.
  29. //
  30. void __cdecl VrfErrorResourceFormat( UINT uIdResourceFormat,
  31. ... );
  32. ///////////////////////////////////////////////////////////////////////////
  33. //
  34. // Print out a message to the console
  35. // The message string is loaded from the resources.
  36. //
  37. void __cdecl VrfTPrintfResourceFormat( UINT uIdResourceFormat,
  38. ... );
  39. ///////////////////////////////////////////////////////////////////////////
  40. //
  41. // Print out a simple (non-formatted) message to the console
  42. // The message string is loaded from the resources.
  43. //
  44. void __cdecl VrfPrintStringFromResources( UINT uIdString );
  45. ///////////////////////////////////////////////////////////////////////////
  46. //
  47. // Report an error using a dialog box or a console message.
  48. // The message string is loaded from the resources.
  49. //
  50. void __cdecl VrfMesssageFromResource( UINT uIdString );
  51. ///////////////////////////////////////////////////////////////////////////
  52. //
  53. // Load a string from resources.
  54. // Return TRUE if we successfully loaded and FALSE if not.
  55. //
  56. // N.B. CString::LoadString doesn't work in cmd line mode
  57. //
  58. BOOL VrfLoadString( ULONG uIdResource,
  59. TCHAR *szBuffer,
  60. ULONG uBufferLength );
  61. ///////////////////////////////////////////////////////////////////////////
  62. //
  63. // Load a string from resources.
  64. // Return TRUE if we successfully loaded and FALSE if not.
  65. //
  66. // N.B. CString::LoadString doesn't work in cmd line mode
  67. //
  68. BOOL VrfLoadString( ULONG uIdResource,
  69. CString &strText );
  70. ///////////////////////////////////////////////////////////////////////////
  71. VOID CopyStringArray( const CStringArray &strArraySource,
  72. CStringArray &strArrayDest );
  73. /////////////////////////////////////////////////////////////////////////////
  74. BOOL IsDriverSigned( LPCTSTR szDriverName );
  75. /////////////////////////////////////////////////////////////////////////////
  76. BOOL VrfSetWindowText( CWnd &Wnd,
  77. ULONG uIdResourceString );
  78. /////////////////////////////////////////////////////////////////////////////
  79. BOOL VrfWriteVerifierSettings( BOOL bHaveNewDrivers,
  80. const CString &strDriversToVerify,
  81. BOOL bHaveNewFlags,
  82. DWORD dwVerifyFlags );
  83. /////////////////////////////////////////////////////////////////////////////
  84. BOOL VrfWriteRegistryDwordValue( HKEY hKey,
  85. LPCTSTR szValueName,
  86. DWORD dwValue );
  87. /////////////////////////////////////////////////////////////////////////////
  88. BOOL VrfWriteRegistryStringValue( HKEY hKey,
  89. LPCTSTR szValueName,
  90. LPCTSTR szValue );
  91. /////////////////////////////////////////////////////////////////////////////
  92. BOOL VrfReadVerifierSettings( CString &strDriversToVerify,
  93. DWORD &dwVerifyFlags );
  94. /////////////////////////////////////////////////////////////////////////////
  95. BOOL VrtLoadCurrentRegistrySettings( BOOL &bAllDriversVerified,
  96. CStringArray &astrDriversToVerify,
  97. DWORD &dwVerifyFlags );
  98. /////////////////////////////////////////////////////////////////////////////
  99. BOOL VrfIsDriversSetDifferent( CString strAllDrivers1,
  100. const CStringArray &astrVerifyDriverNames2 );
  101. /////////////////////////////////////////////////////////////////////////////
  102. VOID VrfSplitDriverNamesSpaceSeparated( CString strAllDrivers,
  103. CStringArray &astrVerifyDriverNames );
  104. /////////////////////////////////////////////////////////////////////////////
  105. BOOL VrfReadRegistryDwordValue( HKEY hKey,
  106. LPCTSTR szValueName,
  107. DWORD &dwValue );
  108. /////////////////////////////////////////////////////////////////////////////
  109. BOOL VrfReadRegistryStringValue( HKEY hKey,
  110. LPCTSTR szValueName,
  111. CString &strDriversToVerify );
  112. /////////////////////////////////////////////////////////////////////////////
  113. BOOL VrfDeleteAllVerifierSettings();
  114. /////////////////////////////////////////////////////////////////////////////
  115. BOOL DeleteAllDiskVerifierSettings();
  116. /////////////////////////////////////////////////////////////////////////////
  117. BOOL VrfGetRuntimeVerifierData( CRuntimeVerifierData *pRuntimeVerifierData );
  118. /////////////////////////////////////////////////////////////////////////////
  119. PLOADED_IMAGE VrfImageLoad( LPTSTR szBinaryName,
  120. LPTSTR szDirectory );
  121. /////////////////////////////////////////////////////////////////////////////
  122. BOOL VrfDumpStateToFile( FILE *file );
  123. /////////////////////////////////////////////////////////////////////////////
  124. BOOL __cdecl VrfFTPrintf( FILE *file,
  125. LPCTSTR szFormat,
  126. ... );
  127. /////////////////////////////////////////////////////////////////////////////
  128. BOOL __cdecl VrfFTPrintfResourceFormat( FILE *file,
  129. UINT uIdResourceFormat,
  130. ... );
  131. /////////////////////////////////////////////////////////////////////////////
  132. BOOL VrfOuputStringFromResources( UINT uIdString,
  133. FILE *file );
  134. /////////////////////////////////////////////////////////////////////////////
  135. BOOL VrfSetNewFlagsVolatile( DWORD dwNewFlags );
  136. /////////////////////////////////////////////////////////////////////////////
  137. BOOL VrfAddDriversVolatile( const CStringArray &astrNewDrivers );
  138. /////////////////////////////////////////////////////////////////////////////
  139. BOOL VrfAddDriverVolatile( const CString &strCrtDriver );
  140. /////////////////////////////////////////////////////////////////////////////
  141. BOOL VrfRemoveDriversVolatile( const CStringArray &astrNewDrivers );
  142. /////////////////////////////////////////////////////////////////////////////
  143. BOOL VrfRemoveDriverVolatile( const CString &strDriverName );
  144. /////////////////////////////////////////////////////////////////////////////
  145. BOOL VrfEnableDebugPrivilege();
  146. /////////////////////////////////////////////////////////////////////////////
  147. VOID VrfDumpChangedSettings( UINT OldFlags,
  148. UINT NewFlags,
  149. INT_PTR nDriversVerified );
  150. /////////////////////////////////////////////////////////////////////////////
  151. DWORD VrfGetStandardFlags();
  152. /////////////////////////////////////////////////////////////////////////////
  153. VOID VrfAddMiniports( CStringArray &astrVerifiedDrivers );
  154. /////////////////////////////////////////////////////////////////////////////
  155. BOOL VrfIsDriverMiniport( CString &strCrtDriver,
  156. CString &strLinkedDriver );
  157. /////////////////////////////////////////////////////////////////////////////
  158. BOOL VrfIsDriverMiniport( PLOADED_IMAGE pLoadedImage,
  159. CString &strLinkedDriver );
  160. /////////////////////////////////////////////////////////////////////////////
  161. VOID VrfDumpRegistrySettingsToConsole();
  162. /////////////////////////////////////////////////////////////////////////////
  163. BOOL VrfIsNameAlreadyInList( LPCTSTR szDriver,
  164. LPCTSTR szAllDrivers );
  165. /////////////////////////////////////////////////////////////////////////////
  166. VOID VrfAddDriverNameNoDuplicates( LPCTSTR szDriver,
  167. CString &strAllDrivers );
  168. /////////////////////////////////////////////////////////////////////////////
  169. BOOL VrfIsStringInArray( LPCTSTR szText,
  170. const CStringArray &astrAllTexts );
  171. #endif //#ifndef __VRF_UTIL_H_INCLUDED__