850 lines
20 KiB
C
850 lines
20 KiB
C
/*++
|
|
|
|
Copyright (c) 1995-97 Microsoft Corporation
|
|
All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
local.h
|
|
|
|
Abstract:
|
|
|
|
Holds spooler install headers.
|
|
|
|
Author:
|
|
|
|
Muhunthan Sivapragasam (MuhuntS) 20-Oct-1995
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
|
|
#define MAX_SETUP_LEN 250
|
|
#define MAX_SETUP_ALLOC_STRING_LEN 4000 // in characters, used in GetLongStringFromRcFile
|
|
#define MAX_SECT_NAME_LEN 256
|
|
#define MAX_DWORD 0xFFFFFFFF
|
|
|
|
#define IDS_PRINTERWIZARD 1001
|
|
#define IDS_WINNTDEV_INSTRUCT 1002
|
|
#define IDS_WIN95DEV_INSTRUCT 1003
|
|
#define IDS_SELECTDEV_LABEL 1004
|
|
#define IDS_DRIVERS_FOR_PLATFORM 1005
|
|
#define IDS_INSTALLING_PORT_MONITOR 1006
|
|
#define IDS_WRONG_ARCHITECTURE 1007
|
|
#define IDS_INVALID_DRIVER 1008
|
|
#define IDS_PROMPT_PORT_MONITOR 1009
|
|
#define IDS_ERROR_INST_PORT_MONITOR 1010
|
|
|
|
#define IDS_WIN95_FLATSHARE 1021
|
|
#define IDS_WINNT_40_CD 1022
|
|
#define IDS_WINNT_SERVER_CD 1023
|
|
#define IDS_WINNT_X86_SERVER_CD 1024
|
|
#define IDS_WINNT_ALPHA_SERVER_CD 1025
|
|
#define IDS_WINNT_IA64_SERVER_CD 1026
|
|
#define IDS_PROMPT_ALT_PLATFORM_DRIVER 1027
|
|
#define IDS_WARN_NO_ALT_PLATFORM_DRIVER 1028
|
|
#define IDS_WARN_NO_DRIVER_FOUND 1029
|
|
|
|
#define IDS_DRIVERS_FOR_WIN95 1031
|
|
#define IDS_DRIVERS_FOR_NT4_X86 1032
|
|
#define IDS_DRIVERS_FOR_NT4_ALPHA 1033
|
|
#define IDS_DRIVERS_FOR_NT4_MIPS 1034
|
|
#define IDS_DRIVERS_FOR_NT4_PPC 1035
|
|
#define IDS_DRIVERS_FOR_X86 1036
|
|
#define IDS_DRIVERS_FOR_IA64 1037
|
|
|
|
//
|
|
// Setuplog entried used during upgrade
|
|
//
|
|
#define IDS_UPGRADE_FAILED 1051
|
|
#define IDS_DRIVER_UPGRADE_FAILED 1052
|
|
#define IDS_PRINTER_UPGRADE_FAILED 1053
|
|
#define IDS_PRINTER_DELETED 1054
|
|
#define IDS_DRIVER_CHANGED 1055
|
|
#define IDS_CONNECTION_DELETED 1056
|
|
|
|
//
|
|
// entries for printupg warnings
|
|
//
|
|
#define IDS_TITLE_BSP_WARN 1060
|
|
#define IDS_TITLE_BSP_ERROR 1061
|
|
#define IDS_BSP_WARN_NO_INBOX 1062
|
|
#define IDS_BSP_WARN_WITH_INBOX 1063
|
|
#define IDS_BSP_BLOCK_NO_INBOX 1064
|
|
#define IDS_BSP_BLOCK_WITH_INBOX 1065
|
|
#define IDS_BSP_WARN_UNSIGNED_DRIVER 1066
|
|
|
|
#define IDT_STATIC 100
|
|
#define IDD_BILLBOARD 101
|
|
#define IDI_SETUP 102
|
|
#define SETUP_ICON 103
|
|
|
|
//
|
|
// Printer driver directory set in ntprint.inf
|
|
//
|
|
#define PRINTER_DRIVER_DIRECTORY_ID 66000
|
|
#define PRINT_PROC_DIRECTORY_ID 66001
|
|
#define SYSTEM_DIRECTORY_ID_ONLY_FOR_NATIVE_ARCHITECTURE 66002
|
|
#define ICM_PROFILE_DIRECTORY_ID 66003
|
|
#define WEBPAGE_DIRECTORY_ID 66004
|
|
|
|
#define PSETUP_SIGNATURE 0x9585
|
|
|
|
// Defines for the columns in the Architecture Platform Table for Driver Signing & CDM
|
|
|
|
#define OS_PLATFORM 0
|
|
#define PROCESSOR_ARCH 1
|
|
|
|
|
|
#ifdef UNICODE
|
|
#define lstrchr wcschr
|
|
#define lstrncmp wcsncmp
|
|
#define lstrncmpi _wcsnicmp
|
|
#else
|
|
#define lstrchr strchr
|
|
#define lstrtok strtok
|
|
#define lstrncmp strncmp
|
|
#define lstrncmpi _strnicmp
|
|
#endif
|
|
|
|
|
|
|
|
#define SIZECHARS(x) (sizeof((x))/sizeof(*x))
|
|
|
|
//
|
|
// Type definitions
|
|
//
|
|
typedef struct _SPLPLATFORMINFO {
|
|
|
|
LPTSTR pszName;
|
|
} SPLPLATFORMINFO, *PSPLPLATFORMINFO;
|
|
|
|
typedef struct _SELECTED_DRV_INFO {
|
|
|
|
LPTSTR pszInfName;
|
|
LPTSTR pszModelName;
|
|
LPTSTR pszDriverSection;
|
|
PSP_DEVINFO_DATA pDevInfoData;
|
|
LPTSTR pszHardwareID;
|
|
LPTSTR pszManufacturer;
|
|
LPTSTR pszOEMUrl;
|
|
LPTSTR pszProvider;
|
|
FILETIME ftDriverDate;
|
|
DWORDLONG dwlDriverVersion;
|
|
DWORD Flags;
|
|
LPTSTR pszzPreviousNames;
|
|
} SELECTED_DRV_INFO, *PSELECTED_DRV_INFO;
|
|
|
|
#define SDFLAG_PREVNAME_SECTION_FOUND 0x00000001
|
|
#define SDFLAG_CDM_DRIVER 0x00000002
|
|
|
|
typedef struct _PARSEINF_INFO {
|
|
|
|
PLATFORM platform;
|
|
LPTSTR pszInstallSection; // Can be platform dependent
|
|
LPTSTR pszzICMFiles;
|
|
LPTSTR pszPrintProc;
|
|
LPTSTR pszVendorSetup;
|
|
LPTSTR pszVendorInstaller;
|
|
DWORD cbDriverInfo6;
|
|
DRIVER_INFO_6 DriverInfo6;
|
|
} PARSEINF_INFO, *PPARSEINF_INFO;
|
|
|
|
typedef struct _PNP_INFO {
|
|
|
|
LPTSTR pszPortName;
|
|
LPTSTR pszDeviceInstanceId;
|
|
} PNP_INFO, *PPNP_INFO;
|
|
|
|
#define VALID_INF_INFO 0x00000001
|
|
#define VALID_PNP_INFO 0x00000002
|
|
//
|
|
// Set if the installation files are copied into a directory whose name is derived from
|
|
// the pnp ID. Since the spooler copies files around, setupapi can't find the files anymore
|
|
// when the device is re-pnp'd and prompts the user for them. We copy the files into this directory
|
|
// and don't delete it, that way setupapi can find them.
|
|
//
|
|
#define LOCALDATAFLAG_PNP_DIR_INSTALL 0x00000004
|
|
|
|
|
|
typedef struct _PSETUP_LOCAL_DATA {
|
|
|
|
SELECTED_DRV_INFO DrvInfo;
|
|
DWORD signature;
|
|
DWORD Flags;
|
|
PARSEINF_INFO InfInfo;
|
|
PNP_INFO PnPInfo;
|
|
} PSETUP_LOCAL_DATA;
|
|
|
|
//
|
|
// Global data
|
|
//
|
|
extern OSVERSIONINFO OsVersionInfo;
|
|
extern LCID lcid;
|
|
extern DWORD dwThisMajorVersion;
|
|
extern TCHAR sComma;
|
|
extern TCHAR sZero;
|
|
extern const GUID GUID_DEVCLASS_PRINTER;
|
|
extern PLATFORM MyPlatform;
|
|
extern HINSTANCE ghInst;
|
|
extern SPLPLATFORMINFO PlatformEnv[], PlatformOverride[];
|
|
extern DWORD PlatformArch[][2];
|
|
extern TCHAR cszNtprintInf[];
|
|
extern TCHAR cszDataSection[];
|
|
extern TCHAR cszComma[];
|
|
extern ULONG_PTR DriverInfo6Offsets[];
|
|
extern ULONG_PTR LocalDataOffsets[];
|
|
extern ULONG_PTR InfInfoOffsets[];
|
|
extern ULONG_PTR SharedInfInfoOffsets[];
|
|
extern ULONG_PTR PnPInfoOffsets[];
|
|
extern TCHAR cszWebNTPrintPkg[];
|
|
extern PCODEDOWNLOADINFO gpCodeDownLoadInfo;
|
|
extern TCHAR cszCatExt[];
|
|
extern TCHAR cszInfExt[];
|
|
extern CRITICAL_SECTION CDMCritSect;
|
|
|
|
extern CRITICAL_SECTION SkipCritSect;
|
|
extern LPTSTR gpszSkipDir;
|
|
|
|
extern TCHAR cszHardwareID[];
|
|
extern TCHAR cszBestDriverInbox[];
|
|
extern TCHAR cszPnPKey[];
|
|
extern TCHAR cszDeviceInstanceId[];
|
|
|
|
extern TCHAR cszMonitorKey[];
|
|
|
|
|
|
//
|
|
// Function prototypes
|
|
//
|
|
VOID
|
|
GetDriverPath(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
OUT TCHAR szDriverPath[MAX_PATH]
|
|
);
|
|
|
|
DWORD
|
|
InvokeSetup(
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pszOption,
|
|
IN LPCTSTR pszInfFile,
|
|
IN LPCTSTR pszSourcePath,
|
|
IN LPCTSTR pszServerName OPTIONAL
|
|
);
|
|
|
|
PVOID
|
|
LocalAllocMem(
|
|
IN UINT cbSize
|
|
);
|
|
|
|
VOID
|
|
LocalFreeMem(
|
|
IN PVOID pMem
|
|
);
|
|
|
|
LPTSTR
|
|
AllocStr(
|
|
IN LPCTSTR pszStr
|
|
);
|
|
|
|
DWORD
|
|
InstallWin95Driver(
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pszModel,
|
|
IN LPCTSTR pszzPreviousNames,
|
|
IN BOOL bPreviousNamesSection,
|
|
IN LPCTSTR pszServerName,
|
|
IN OUT LPTSTR pszInfPath,
|
|
IN LPCTSTR pszDiskName,
|
|
IN DWORD dwInstallFlags,
|
|
IN DWORD dwAddDrvFlags
|
|
);
|
|
|
|
VOID
|
|
InfGetString(
|
|
IN PINFCONTEXT pInfContext,
|
|
IN DWORD dwFieldIndex,
|
|
OUT LPTSTR *ppszField,
|
|
IN OUT LPDWORD pcchCopied,
|
|
IN OUT LPBOOL pbFail
|
|
);
|
|
|
|
LPTSTR
|
|
GetStringFromRcFile(
|
|
UINT uId
|
|
);
|
|
|
|
LPTSTR
|
|
GetLongStringFromRcFile(
|
|
UINT uId
|
|
);
|
|
|
|
BOOL
|
|
SetSelectDevParams(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PSP_DEVINFO_DATA pDevInfoData,
|
|
IN BOOL bWin95,
|
|
IN LPCTSTR pszModel OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
SetDevInstallParams(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PSP_DEVINFO_DATA pDevInfoData,
|
|
IN LPCTSTR pszDriverPath OPTIONAL
|
|
);
|
|
|
|
HDEVINFO
|
|
CreatePrinterDeviceInfoList(
|
|
IN HWND hwnd
|
|
);
|
|
|
|
LPDRIVER_INFO_6
|
|
Win95DriverInfo6FromName(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA* ppLocalData,
|
|
IN LPCTSTR pszModel,
|
|
IN LPCTSTR pszzPreviousNames
|
|
);
|
|
|
|
BOOL
|
|
CopyPrinterDriverFiles(
|
|
IN LPDRIVER_INFO_6 pDriverInfo6,
|
|
IN LPCTSTR pszInfName,
|
|
IN LPCTSTR pszSourcePath,
|
|
IN LPCTSTR pszDiskName,
|
|
IN LPCTSTR pszTargetPath,
|
|
IN HWND hwnd,
|
|
IN DWORD dwInstallFlags,
|
|
IN BOOL bForgetSource
|
|
);
|
|
|
|
BOOL
|
|
ParseInf(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN PLATFORM platform,
|
|
IN LPCTSTR pszServerName,
|
|
IN DWORD dwInstallFlags
|
|
);
|
|
|
|
BOOL
|
|
BuildClassDriverList(
|
|
IN HDEVINFO hDevInfo
|
|
);
|
|
|
|
DWORD
|
|
InstallDriverFromCurrentInf(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN HWND hwnd,
|
|
IN PLATFORM platform,
|
|
IN DWORD dwVersion,
|
|
IN LPCTSTR pszServerName,
|
|
IN HSPFILEQ CopyQueue,
|
|
IN PVOID QueueContext,
|
|
IN PSP_FILE_CALLBACK InstallMsgHandler,
|
|
IN DWORD Flags,
|
|
IN LPCTSTR pszSource,
|
|
IN DWORD dwInstallFlags,
|
|
IN DWORD dwAddDrvFlags,
|
|
IN LPCTSTR pszFileSrcPath, // can be different from INF source in case we had to decompress NT4 CD-ROM inf
|
|
OUT LPTSTR *ppszNewModelName,
|
|
OUT PDWORD pBlockingInfo
|
|
);
|
|
|
|
HRESULT
|
|
IsProductType(
|
|
IN BYTE ProductType,
|
|
IN BYTE Comparison
|
|
);
|
|
|
|
#if 0
|
|
BOOL
|
|
CopyOEMInfFileAndGiveUniqueName(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PSP_DEVINFO_DATA pDevInfoData,
|
|
IN LPTSTR pszInfFile
|
|
);
|
|
#endif
|
|
|
|
BOOL
|
|
AddPrintMonitor(
|
|
IN LPCTSTR pszName,
|
|
IN LPCTSTR pszDllName
|
|
);
|
|
|
|
BOOL
|
|
FindPathOnSource(
|
|
IN LPCTSTR pszFileName,
|
|
IN HINF MasterInf,
|
|
IN OUT LPTSTR pszPathOnSource,
|
|
IN DWORD dwLen,
|
|
OUT LPTSTR *ppszMediaDescription, OPTIONAL
|
|
OUT LPTSTR *ppszTagFile OPTIONAL
|
|
);
|
|
|
|
VOID
|
|
DestroyLocalData(
|
|
IN PPSETUP_LOCAL_DATA pLocalData
|
|
);
|
|
|
|
LPDRIVER_INFO_6
|
|
CloneDriverInfo6(
|
|
IN LPDRIVER_INFO_6 pSourceDriverInfo6,
|
|
IN DWORD cbDriverInfo6
|
|
);
|
|
|
|
PPSETUP_LOCAL_DATA
|
|
BuildInternalData(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PSP_DEVINFO_DATA pSpDevInfoData
|
|
);
|
|
|
|
VOID
|
|
PackDriverInfo6(
|
|
IN LPDRIVER_INFO_6 pSourceDriverInfo6,
|
|
IN LPDRIVER_INFO_6 pTargetDriverInfo6,
|
|
IN DWORD cbDriverInfo6
|
|
);
|
|
|
|
BOOL
|
|
InfGetDependentFilesAndICMFiles(
|
|
IN HDEVINFO hDevInfo,
|
|
IN HINF hInf,
|
|
IN BOOL bWin95,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN PLATFORM platform,
|
|
IN LPCTSTR pszServerName,
|
|
IN DWORD dwInstallFlags,
|
|
IN LPCTSTR pszSectionNameWithExt,
|
|
IN OUT LPDWORD pcchSize
|
|
);
|
|
|
|
BOOL
|
|
IdenticalDriverInfo6(
|
|
IN LPDRIVER_INFO_6 p1,
|
|
IN LPDRIVER_INFO_6 p2
|
|
);
|
|
|
|
BOOL
|
|
DeleteAllFilesInDirectory(
|
|
LPCTSTR pszDir,
|
|
BOOL bDeleteDir
|
|
);
|
|
|
|
LPTSTR
|
|
FileNamePart(
|
|
IN LPCTSTR pszFullName
|
|
);
|
|
|
|
HDEVINFO
|
|
GetInfAndBuildDrivers(
|
|
IN HWND hwnd,
|
|
IN DWORD dwTitleId,
|
|
IN DWORD dwDiskId,
|
|
IN TCHAR szInfPath[MAX_PATH],
|
|
IN DWORD dwInstallFlags,
|
|
IN PLATFORM platform,
|
|
IN DWORD dwVersion,
|
|
IN LPCTSTR pszDriverName, OPTIONAL
|
|
OUT PPSETUP_LOCAL_DATA *ppLocalData, OPTIONAL
|
|
OUT LPTSTR *ppFileSrcPath OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
MyName(
|
|
IN LPCTSTR pszServerName
|
|
);
|
|
|
|
BOOL
|
|
CreateDevNodeForPrinter(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN LPCTSTR pszPrinterName,
|
|
IN HANDLE hPrinter
|
|
);
|
|
|
|
VOID
|
|
FreeStructurePointers(
|
|
LPBYTE pStruct,
|
|
PULONG_PTR pOffSets,
|
|
BOOL bFreeStruct
|
|
);
|
|
|
|
BOOL
|
|
AddPrinterDriverUsingCorrectLevel(
|
|
IN LPCTSTR pszServerName,
|
|
IN DRIVER_INFO_6 *pDriverInfo6,
|
|
IN DWORD dwAddDrvFlags
|
|
);
|
|
|
|
BOOL
|
|
AddPrinterDriverUsingCorrectLevelWithPrintUpgRetry(
|
|
IN LPCTSTR pszServerName, OPTIONAL
|
|
IN DRIVER_INFO_6 *pDriverInfo6,
|
|
IN DWORD dwAddDrvFlags,
|
|
IN BOOL bIsDriverPathFullPath,
|
|
IN BOOL bOfferReplacement,
|
|
IN BOOL bPopupUI,
|
|
OUT LPTSTR *ppszReplacementDriver,
|
|
OUT DWORD *pdwBlockingStatus
|
|
);
|
|
|
|
BOOL
|
|
BlockedDriverPrintUpgUI(
|
|
IN LPCTSTR pszServer, OPTIONAL
|
|
IN DRIVER_INFO_6 *pDriverInfo6,
|
|
IN BOOL bIsDriverPathFullPath,
|
|
IN BOOL bOfferReplacement,
|
|
IN BOOL bPopupUI,
|
|
OUT LPTSTR *ppszReplacementDriver,
|
|
OUT DWORD *pdwBlockingStatus
|
|
);
|
|
|
|
BOOL
|
|
InfIsCompatibleDriver(
|
|
IN LPCTSTR pszDriverModel,
|
|
IN LPCTSTR pszDriverPath, // main rendering driver dll
|
|
IN LPCTSTR pszEnvironment,
|
|
IN HINF hInf,
|
|
OUT DWORD *pdwBlockingStatus,
|
|
OUT LPTSTR *ppszReplacementDriver OPTIONAL // caller must free it.
|
|
);
|
|
|
|
BOOL
|
|
FileExists(
|
|
IN LPCTSTR pszFileName
|
|
);
|
|
|
|
BOOL
|
|
SetPnPInfoForPrinter(
|
|
IN HANDLE hPrinter,
|
|
IN LPCTSTR pszDeviceInstanceId,
|
|
IN LPCTSTR pszHardwareID,
|
|
IN LPCTSTR pszManufacturer,
|
|
IN LPCTSTR pszOEMUrl
|
|
);
|
|
|
|
BOOL
|
|
IsRunningNtServer(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
InstallAllInfSections(
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN PLATFORM platform,
|
|
IN LPCTSTR pszServerName,
|
|
IN HSPFILEQ CopyQueue,
|
|
IN LPCTSTR pszSource,
|
|
IN DWORD dwInstallFlags,
|
|
IN HINF hInf,
|
|
IN LPCTSTR pszInstallSection
|
|
);
|
|
|
|
LPTSTR
|
|
CheckForCatalogFile(
|
|
IN HINF hInf,
|
|
IN BOOL bOnlyFromINF,
|
|
IN LPCTSTR pszSource
|
|
);
|
|
|
|
BOOL
|
|
SetTargetDirectories(
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN PLATFORM platform,
|
|
IN LPCTSTR pszServerName,
|
|
IN HINF hInf,
|
|
IN DWORD dwInstallFlags
|
|
);
|
|
|
|
BOOL
|
|
IsMonitorFound(
|
|
IN LPVOID pBuf,
|
|
IN DWORD dwReturned,
|
|
IN LPTSTR pszName
|
|
);
|
|
|
|
BOOL
|
|
IsMonitorInstalled(
|
|
IN LPTSTR pszMonitorName
|
|
);
|
|
|
|
BOOL
|
|
IsLanguageMonitorInstalled(
|
|
IN PCTSTR pszMonitorName
|
|
);
|
|
|
|
BOOL
|
|
CleanupUniqueScratchDirectory(
|
|
IN LPCTSTR pszServerName,
|
|
IN PLATFORM platform
|
|
);
|
|
|
|
BOOL
|
|
CleanupScratchDirectory(
|
|
IN LPCTSTR pszServerName,
|
|
IN PLATFORM platform
|
|
);
|
|
|
|
BOOL
|
|
InitCodedownload(
|
|
HWND hwnd
|
|
);
|
|
|
|
VOID
|
|
DestroyCodedownload(
|
|
PCODEDOWNLOADINFO pCodeDownLoadInfo
|
|
);
|
|
|
|
BOOL
|
|
DestroyOnlyPrinterDeviceInfoList(
|
|
IN HDEVINFO hDevInfo
|
|
);
|
|
|
|
LPTSTR
|
|
GetSystemInstallPath(
|
|
VOID
|
|
);
|
|
|
|
PPSETUP_LOCAL_DATA
|
|
RebuildDeviceInfo(
|
|
IN HDEVINFO hDevInfo,
|
|
IN PPSETUP_LOCAL_DATA pLocalData,
|
|
IN LPCTSTR pszSource
|
|
);
|
|
|
|
BOOL
|
|
SetupSkipDir(
|
|
IN PLATFORM platform,
|
|
IN LPCTSTR pszServerName
|
|
);
|
|
|
|
void
|
|
CleanupSkipDir(
|
|
VOID
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndCatStr(
|
|
IN LPCTSTR pszStr1,
|
|
IN LPCTSTR pszStr2
|
|
);
|
|
|
|
LPTSTR
|
|
AllocAndCatStr2(
|
|
IN LPCTSTR pszStr1,
|
|
IN LPCTSTR pszStr2,
|
|
IN LPCTSTR pszStr3
|
|
);
|
|
|
|
LPTSTR
|
|
AllocStrWCtoTC(
|
|
IN LPWSTR lpStr
|
|
);
|
|
|
|
VOID
|
|
PSetupKillBadUserConnections(
|
|
VOID
|
|
);
|
|
|
|
DWORD
|
|
PSetupInstallInboxDriverSilently(
|
|
IN LPCTSTR pszDriverName
|
|
);
|
|
|
|
BOOL
|
|
PruneInvalidFilesIfNotAdmin(
|
|
IN HWND hWnd,
|
|
IN OUT HSPFILEQ CopyQueue
|
|
);
|
|
|
|
BOOL
|
|
AddDirectoryTag(
|
|
IN LPTSTR pszDir,
|
|
IN DWORD dwSize
|
|
);
|
|
|
|
BOOL
|
|
AddPnpDirTag(
|
|
IN LPTSTR pszHardwareId,
|
|
IN OUT LPTSTR pszDir,
|
|
IN DWORD dwSize
|
|
);
|
|
|
|
BOOL
|
|
AddDirToDriverInfo(
|
|
IN LPTSTR pszDir,
|
|
IN LPDRIVER_INFO_6 pDriverInfo6
|
|
);
|
|
|
|
VOID
|
|
GetCDRomDrive(
|
|
TCHAR szDrive[5]
|
|
);
|
|
|
|
BOOL
|
|
IsSystemUpgradeInProgress(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IsSystemSetupInProgress(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IsSpoolerRunning(
|
|
VOID
|
|
);
|
|
|
|
LPTSTR
|
|
GetMyTempDir(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IsNTPrintInf(
|
|
IN LPCTSTR pszInfName
|
|
);
|
|
|
|
BOOL
|
|
IsSystemNTPrintInf(
|
|
IN LPCTSTR pszInfName
|
|
);
|
|
|
|
PVOID
|
|
SetupDriverSigning(
|
|
IN HDEVINFO hDevInfo,
|
|
IN LPCTSTR pszServerName,
|
|
IN LPTSTR pszInfName,
|
|
IN LPCTSTR pszSource,
|
|
IN PLATFORM platform,
|
|
IN DWORD dwVersion,
|
|
IN HSPFILEQ CopyQueue,
|
|
IN BOOL bWeb
|
|
);
|
|
|
|
BOOL
|
|
IsLocalAdmin(
|
|
OUT BOOL *pbAdmin
|
|
);
|
|
|
|
BOOL
|
|
GetCatalogFile(
|
|
IN HANDLE hDriverSigning,
|
|
OUT PCWSTR *ppszCat
|
|
);
|
|
|
|
BOOL
|
|
DrvSigningIsLocalAdmin(
|
|
IN HANDLE hDriverSigning,
|
|
OUT BOOL *pbIsLocalAdmin
|
|
);
|
|
|
|
BOOL
|
|
AddDriverCatalogIfNotAdmin(
|
|
IN PCWSTR pszServer,
|
|
IN HANDLE hDriverSigningInfo,
|
|
IN PCWSTR pszInfPath,
|
|
IN PCWSTR pszSrcLoc,
|
|
IN DWORD dwMediaType,
|
|
IN DWORD dwCopyStyle
|
|
);
|
|
|
|
BOOL
|
|
CleanupDriverSigning(
|
|
IN PVOID pDSInfo
|
|
);
|
|
|
|
BOOL
|
|
CheckForCatalogFileInInf(
|
|
IN LPCTSTR pszInfName,
|
|
OUT LPTSTR *lppszCatFile OPTIONAL
|
|
);
|
|
|
|
BOOL
|
|
IsCatInInf(
|
|
IN PVOID pDSInfo
|
|
);
|
|
|
|
BOOL
|
|
GetOSVersion(
|
|
IN LPCTSTR pszServerName,
|
|
OUT POSVERSIONINFO pOSVer
|
|
);
|
|
|
|
BOOL
|
|
GetOSVersionEx(
|
|
IN LPCTSTR pszServerName,
|
|
OUT POSVERSIONINFOEX pOSVerEx
|
|
);
|
|
|
|
BOOL
|
|
GetArchitecture(
|
|
IN LPCTSTR pszServerName,
|
|
OUT LPTSTR pszArch,
|
|
IN OUT LPDWORD pcArchSize
|
|
);
|
|
|
|
DWORD
|
|
InstallDriverSilently(
|
|
IN LPCTSTR pszInfFile,
|
|
IN LPCTSTR pszDriverName,
|
|
IN LPCTSTR pszSource
|
|
);
|
|
|
|
BOOL
|
|
IsInWow64(
|
|
);
|
|
BOOL
|
|
IsWhistlerOrAbove(
|
|
IN LPCTSTR pszServerName
|
|
);
|
|
|
|
DWORD
|
|
InstallReplacementDriver(
|
|
IN HWND hwnd,
|
|
IN LPCTSTR pszServerName,
|
|
IN LPCTSTR pszModelName,
|
|
IN PLATFORM platform,
|
|
IN DWORD version,
|
|
IN DWORD dwInstallFlags,
|
|
IN DWORD dwAddDrvFlags
|
|
);
|
|
|
|
HMODULE LoadLibraryUsingFullPath(
|
|
LPCTSTR lpFileName
|
|
);
|
|
|
|
BOOL
|
|
CheckAndKeepPreviousNames(
|
|
IN LPCTSTR pszServer,
|
|
IN PDRIVER_INFO_6 pDriverInfo6,
|
|
IN PLATFORM platform
|
|
);
|
|
|
|
BOOL
|
|
IsTheSamePlatform(
|
|
IN LPCTSTR pszServer,
|
|
IN PLATFORM platform
|
|
);
|
|
|
|
LPTSTR
|
|
GetArchitectureName(
|
|
IN LPCTSTR pszServerName
|
|
);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|