// // Driver Verifier UI // Copyright (c) Microsoft Corporation, 1999 // // // // module: VrfUtil.h // author: DMihai // created: 11/1/00 // // Description: // #ifndef __VRF_UTIL_H_INCLUDED__ #define __VRF_UTIL_H_INCLUDED__ // // ARRAY_LENGTH macro // #ifndef ARRAY_LENGTH #define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( array[ 0 ] ) ) #endif //#ifndef ARRAY_LENGTH // // Forward declarations // class CRuntimeVerifierData; /////////////////////////////////////////////////////////////////////////// // // Report an error using a dialog box or a console message. // The message format string is loaded from the resources. // void __cdecl VrfErrorResourceFormat( UINT uIdResourceFormat, ... ); /////////////////////////////////////////////////////////////////////////// // // Print out a message to the console // The message string is loaded from the resources. // void __cdecl VrfTPrintfResourceFormat( UINT uIdResourceFormat, ... ); /////////////////////////////////////////////////////////////////////////// // // Print out a simple (non-formatted) message to the console // The message string is loaded from the resources. // void __cdecl VrfPrintStringFromResources( UINT uIdString ); /////////////////////////////////////////////////////////////////////////// // // Report an error using a dialog box or a console message. // The message string is loaded from the resources. // void __cdecl VrfMesssageFromResource( UINT uIdString ); /////////////////////////////////////////////////////////////////////////// // // Load a string from resources. // Return TRUE if we successfully loaded and FALSE if not. // // N.B. CString::LoadString doesn't work in cmd line mode // BOOL VrfLoadString( ULONG uIdResource, TCHAR *szBuffer, ULONG uBufferLength ); /////////////////////////////////////////////////////////////////////////// // // Load a string from resources. // Return TRUE if we successfully loaded and FALSE if not. // // N.B. CString::LoadString doesn't work in cmd line mode // BOOL VrfLoadString( ULONG uIdResource, CString &strText ); /////////////////////////////////////////////////////////////////////////// VOID CopyStringArray( const CStringArray &strArraySource, CStringArray &strArrayDest ); ///////////////////////////////////////////////////////////////////////////// BOOL IsDriverSigned( LPCTSTR szDriverName ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfSetWindowText( CWnd &Wnd, ULONG uIdResourceString ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfWriteVerifierSettings( BOOL bHaveNewDrivers, const CString &strDriversToVerify, BOOL bHaveNewFlags, DWORD dwVerifyFlags ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfWriteRegistryDwordValue( HKEY hKey, LPCTSTR szValueName, DWORD dwValue ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfWriteRegistryStringValue( HKEY hKey, LPCTSTR szValueName, LPCTSTR szValue ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfReadVerifierSettings( CString &strDriversToVerify, DWORD &dwVerifyFlags ); ///////////////////////////////////////////////////////////////////////////// BOOL VrtLoadCurrentRegistrySettings( BOOL &bAllDriversVerified, CStringArray &astrDriversToVerify, DWORD &dwVerifyFlags ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfIsDriversSetDifferent( CString strAllDrivers1, const CStringArray &astrVerifyDriverNames2 ); ///////////////////////////////////////////////////////////////////////////// VOID VrfSplitDriverNamesSpaceSeparated( CString strAllDrivers, CStringArray &astrVerifyDriverNames ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfReadRegistryDwordValue( HKEY hKey, LPCTSTR szValueName, DWORD &dwValue ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfReadRegistryStringValue( HKEY hKey, LPCTSTR szValueName, CString &strDriversToVerify ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfDeleteAllVerifierSettings(); ///////////////////////////////////////////////////////////////////////////// BOOL DeleteAllDiskVerifierSettings(); ///////////////////////////////////////////////////////////////////////////// BOOL VrfGetRuntimeVerifierData( CRuntimeVerifierData *pRuntimeVerifierData ); ///////////////////////////////////////////////////////////////////////////// PLOADED_IMAGE VrfImageLoad( LPTSTR szBinaryName, LPTSTR szDirectory ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfDumpStateToFile( FILE *file ); ///////////////////////////////////////////////////////////////////////////// BOOL __cdecl VrfFTPrintf( FILE *file, LPCTSTR szFormat, ... ); ///////////////////////////////////////////////////////////////////////////// BOOL __cdecl VrfFTPrintfResourceFormat( FILE *file, UINT uIdResourceFormat, ... ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfOuputStringFromResources( UINT uIdString, FILE *file ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfSetNewFlagsVolatile( DWORD dwNewFlags ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfAddDriversVolatile( const CStringArray &astrNewDrivers ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfAddDriverVolatile( const CString &strCrtDriver ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfRemoveDriversVolatile( const CStringArray &astrNewDrivers ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfRemoveDriverVolatile( const CString &strDriverName ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfEnableDebugPrivilege(); ///////////////////////////////////////////////////////////////////////////// VOID VrfDumpChangedSettings( UINT OldFlags, UINT NewFlags, INT_PTR nDriversVerified ); ///////////////////////////////////////////////////////////////////////////// DWORD VrfGetStandardFlags(); ///////////////////////////////////////////////////////////////////////////// VOID VrfAddMiniports( CStringArray &astrVerifiedDrivers ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfIsDriverMiniport( CString &strCrtDriver, CString &strLinkedDriver ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfIsDriverMiniport( PLOADED_IMAGE pLoadedImage, CString &strLinkedDriver ); ///////////////////////////////////////////////////////////////////////////// VOID VrfDumpRegistrySettingsToConsole(); ///////////////////////////////////////////////////////////////////////////// BOOL VrfIsNameAlreadyInList( LPCTSTR szDriver, LPCTSTR szAllDrivers ); ///////////////////////////////////////////////////////////////////////////// VOID VrfAddDriverNameNoDuplicates( LPCTSTR szDriver, CString &strAllDrivers ); ///////////////////////////////////////////////////////////////////////////// BOOL VrfIsStringInArray( LPCTSTR szText, const CStringArray &astrAllTexts ); #endif //#ifndef __VRF_UTIL_H_INCLUDED__