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.
 
 
 
 
 
 

78 lines
2.4 KiB

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
INFSCAN
installscan.h
Abstract:
Install section scanning class
History:
Created July 2001 - JamieHun
--*/
#ifndef _INFSCAN_INSTALLSCAN_H_
#define _INFSCAN_INSTALLSCAN_H_
typedef int (InstallScan::*RecurseKeywordCallback)(ParseInfContextBlob & TheInf,const SafeString & sect,const SafeString & keyword,const SafeString & val);
class InstallScan {
public:
GlobalScan *pGlobalScan;
InfScan *pInfScan;
DWORD PlatformMask;
SafeString Section;
ParseInfContextList InfSearchList;
StringSet Included;
StringSet HWIDs;
TargetDirectoryEntry *pTargetDirectory;
public:
bool NotDeviceInstall;
bool HasDependentFileChanged;
InstallScan();
~InstallScan();
public:
int ScanInstallSection();
void AddHWIDs(const StringSet & hwids);
void GetHWIDs(StringSet & hwids);
protected:
int Layouts();
int Include(const SafeString & name);
int RecurseKeyword(const SafeString & sect,const SafeString & keyword,RecurseKeywordCallback callback, int & count);
int IncludeCallback(ParseInfContextBlob & TheInf,const SafeString & sect,const SafeString & keyword,const SafeString & value);
int NeedsCallback(ParseInfContextBlob & TheInf,const SafeString & sect,const SafeString & keyword,const SafeString & value);
int CopyFilesCallback(ParseInfContextBlob & TheInf,const SafeString & sect,const SafeString & keyword,const SafeString & value);
int CheckSingleCopyFile(ParseInfContextBlob & TheInf,TargetDirectoryEntry *pTargDir,const SafeString & sect,const SafeString & keyword,const SafeString & section);
int CheckInstallSubSection(const SafeString & sect);
int CheckCopyFiles(const SafeString & section);
int QuerySourceFile(ParseInfContextBlob & TheInf,const SafeString & section,const SafeString & source,SourceDisksFilesList & Target);
LONG GetLineCount(const SafeString & section);
bool DoesSectionExist(const SafeString & section);
public:
//
// redirected
//
void Fail(int err,const StringList & errors);
void Fail(int err);
void Fail(int err,const SafeString & one);
void Fail(int err,const SafeString & one,const SafeString & two);
void Fail(int err,const SafeString & one,const SafeString & two,const SafeString & three);
BOOL Pedantic();
};
#endif //!_INFSCAN_INSTALLSCAN_H_