1726 lines
28 KiB
C
1726 lines
28 KiB
C
/*++
|
|
|
|
Copyright (c) 1990 - 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
local.h
|
|
|
|
Abstract:
|
|
|
|
Header file for Local Print Providor
|
|
|
|
Author:
|
|
|
|
Dave Snipp (DaveSn) 15-Mar-1991
|
|
|
|
Revision History:
|
|
|
|
06-Jun-1995 MuhuntS DRIVER_INFO_3, PRINTER_INFO_5 changes
|
|
17-May-1992 ChuckC Added CreateSplUniStr, DeleteSplUniStr.
|
|
27 June 94 MattFe pIniSpooler
|
|
10 July 94 MattFe Spl entry points for Caching
|
|
|
|
--*/
|
|
|
|
#include <splcom.h>
|
|
#include <ntfytab.h>
|
|
|
|
|
|
//
|
|
// Defines to make code more readable.
|
|
//
|
|
|
|
#define ONEDAY 60*24
|
|
#define BROADCAST TRUE
|
|
#define NO_BROADCAST FALSE
|
|
#define CHANGEID_ONLY 2
|
|
#define UPDATE_CHANGEID 1
|
|
#define KEEP_CHANGEID 0
|
|
#define OVERWRITE_EXISTING_FILE FALSE
|
|
#define FIRST_FILE_TIME_GREATER_THAN_SECOND 1
|
|
#define NO_COPY_IF_TARGET_EXISTS TRUE
|
|
#define OVERWRITE_IF_TRAGET_EXISTS FALSE
|
|
#define USE_SCRATCH_DIR TRUE
|
|
#define IMPERSONATE_USER TRUE
|
|
#define DO_NOT_IMPERSONATE_USER FALSE
|
|
#define STRINGS_ARE_EQUAL 0
|
|
#define TEN_MINUTES 10*60*1000
|
|
#define DEFAULT_NUMBER_MASTER_AND_BACKUP 3
|
|
#define DEFAULT_NUMBER_BROWSE_WORKSTATIONS 2
|
|
#define DEFAULT_REFRESH_TIMES_PER_DECAY_PERIOD 2;
|
|
#define FIND_ANY_VERSION TRUE
|
|
#define FIND_COMPATIBLE_VERSION FALSE
|
|
#define NT3X_VERSION TRUE
|
|
#define CURRENT_VERSION FALSE
|
|
|
|
// Default timeout values we will return
|
|
#define DEFAULT_DNS_TIMEOUT 15000
|
|
#define DEFAULT_TX_TIMEOUT 45000
|
|
|
|
extern WCHAR *szPrinterData;
|
|
extern WCHAR *szConfigurationKey;
|
|
extern WCHAR *szDataFileKey;
|
|
extern WCHAR *szDriverVersion;
|
|
extern WCHAR *szDriversKey;
|
|
extern WCHAR *szPrintersKey;
|
|
extern WCHAR *szDirectory;
|
|
extern WCHAR *szDriverIni;
|
|
extern WCHAR *szDriverFile;
|
|
extern WCHAR *szDriverFileEntry;
|
|
extern WCHAR *szDriverDataFile;
|
|
extern WCHAR *szDriverConfigFile;
|
|
extern WCHAR *szDriverDir;
|
|
extern WCHAR *szPrintProcDir;
|
|
extern WCHAR *szPrinterDir;
|
|
extern WCHAR *szPrinterIni;
|
|
extern WCHAR *szAllShadows;
|
|
extern WCHAR *szNullPort;
|
|
extern WCHAR *szComma;
|
|
extern WCHAR *szName;
|
|
extern WCHAR *szShare;
|
|
extern WCHAR *szPort;
|
|
extern WCHAR *szPrintProcessor;
|
|
extern WCHAR *szDatatype;
|
|
extern WCHAR *szDriver;
|
|
extern WCHAR *szLocation;
|
|
extern WCHAR *szDescription;
|
|
extern WCHAR *szAttributes;
|
|
extern WCHAR *szStatus;
|
|
extern WCHAR *szPriority;
|
|
extern WCHAR *szDefaultPriority;
|
|
extern WCHAR *szUntilTime;
|
|
extern WCHAR *szStartTime;
|
|
extern WCHAR *szParameters;
|
|
extern WCHAR *szSepFile;
|
|
extern WCHAR *szDevMode;
|
|
extern WCHAR *szSecurity;
|
|
extern WCHAR *szSpoolDir;
|
|
extern WCHAR *szNetMsgDll;
|
|
extern WCHAR *szTimeLastChange;
|
|
extern WCHAR *szTotalJobs;
|
|
extern WCHAR *szTotalBytes;
|
|
extern WCHAR *szTotalPages;
|
|
extern WCHAR *szHelpFile;
|
|
extern WCHAR *szMonitor;
|
|
extern WCHAR *szDependentFiles;
|
|
extern WCHAR *szDNSTimeout;
|
|
extern WCHAR *szTXTimeout;
|
|
extern WCHAR *szNull;
|
|
|
|
extern HANDLE hInst;
|
|
extern LPWSTR szPrintShare;
|
|
extern LPWSTR szPrtProcsShare;
|
|
extern HKEY hPrinterRootKey, hPrintersKey;
|
|
extern PINISPOOLER pLocalIniSpooler;
|
|
extern LPDWORD pJobIdMap;
|
|
extern DWORD MaxJobId;
|
|
extern DWORD CurrentJobId;
|
|
extern LPDWORD pJobIdMap;
|
|
extern DWORD MaxJobId;
|
|
extern DWORD CurrentJobId;
|
|
extern HANDLE InitSemaphore;
|
|
extern HANDLE SchedulerSignal;
|
|
extern DWORD dwSchedulerThreadPriority;
|
|
extern CRITICAL_SECTION SpoolerSection;
|
|
#if DBG
|
|
extern HANDLE hcsSpoolerSection;
|
|
#endif
|
|
extern PINIENVIRONMENT pThisEnvironment;
|
|
extern DWORD cThisMajorVersion;
|
|
extern WCHAR *szEnvironment;
|
|
extern WCHAR *szMajorVersion;
|
|
extern WCHAR *szMinorVersion;
|
|
|
|
extern DWORD dwEnableNetPopups;
|
|
|
|
extern LPWSTR szRemoteDoc;
|
|
extern LPWSTR szLocalDoc;
|
|
extern LPWSTR szFastPrintTimeout;
|
|
|
|
extern LPWSTR szRaw;
|
|
extern DWORD dwUpgradeFlag;
|
|
|
|
#define CHECK_SCHEDULER() SetEvent(SchedulerSignal)
|
|
|
|
extern DWORD dwFastPrintWaitTimeout;
|
|
extern DWORD dwPortThreadPriority;
|
|
extern DWORD dwFastPrintThrottleTimeout;
|
|
extern DWORD dwFastPrintSlowDownThreshold;
|
|
extern DWORD dwWritePrinterSleepTime;
|
|
extern DWORD dwServerThreadPriority;
|
|
extern DWORD ServerThreadTimeout;
|
|
extern DWORD ServerThreadRunning;
|
|
extern DWORD NetPrinterDecayPeriod;
|
|
extern DWORD RefreshTimesPerDecayPeriod;
|
|
extern DWORD dwBeepEnabled;
|
|
extern HANDLE ServerThreadSemaphore;
|
|
extern BOOL bNetInfoReady;
|
|
extern DWORD FirstAddNetPrinterTickCount;
|
|
extern DWORD BrowsePrintWorkstations;
|
|
|
|
extern DWORD PortToPrinterStatusMappings[];
|
|
|
|
extern WCHAR *szSpooler;
|
|
extern PWCHAR pszUpgradeToken;
|
|
|
|
typedef DWORD NOTIFYVECTOR[NOTIFY_TYPE_MAX];
|
|
typedef NOTIFYVECTOR *PNOTIFYVECTOR;
|
|
|
|
#define ZERONV(dest) \
|
|
dest[0] = dest[1] = 0
|
|
|
|
#define COPYNV(dest, src) \
|
|
{ dest[0] = src[0]; dest[1] = src[1]; }
|
|
|
|
#define ADDNV(dest, src) \
|
|
{ dest[0] |= src[0]; dest[1] |= src[1]; }
|
|
|
|
extern NOTIFYVECTOR NVPrinterStatus;
|
|
extern NOTIFYVECTOR NVPrinterSD;
|
|
extern NOTIFYVECTOR NVJobStatus;
|
|
extern NOTIFYVECTOR NVJobStatusString;
|
|
extern NOTIFYVECTOR NVJobStatusAndString;
|
|
extern NOTIFYVECTOR NVPurge;
|
|
extern NOTIFYVECTOR NVDeletedJob;
|
|
extern NOTIFYVECTOR NVAddJob;
|
|
extern NOTIFYVECTOR NVSpoolJob;
|
|
extern NOTIFYVECTOR NVWriteJob;
|
|
extern NOTIFYVECTOR NVPrinterAll;
|
|
extern NOTIFYVECTOR NVJobPrinted;
|
|
extern FARPROC pfnPrinterEvent;
|
|
|
|
VOID
|
|
InitializeLocalspl(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
EnterSplSem(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
LeaveSplSem(
|
|
VOID
|
|
);
|
|
|
|
#if DBG
|
|
|
|
extern PDBG_POINTERS gpDbgPointers;
|
|
|
|
VOID
|
|
SplInSem(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
SplOutSem(
|
|
VOID
|
|
);
|
|
#else
|
|
#define SplInSem()
|
|
#define SplOutSem()
|
|
#endif
|
|
|
|
PDEVMODE
|
|
AllocDevMode(
|
|
PDEVMODE pDevMode
|
|
);
|
|
|
|
BOOL
|
|
FreeDevMode(
|
|
PDEVMODE pDevMode
|
|
);
|
|
|
|
PINIENTRY
|
|
FindIniKey(
|
|
PINIENTRY pIniEntry,
|
|
LPWSTR lpName
|
|
);
|
|
|
|
BOOL
|
|
CheckSepFile(
|
|
LPWSTR lpFileName
|
|
);
|
|
|
|
int
|
|
DoSeparator(
|
|
PSPOOL
|
|
);
|
|
|
|
BOOL
|
|
DestroyDirectory(
|
|
LPWSTR lpPrinterDir
|
|
);
|
|
|
|
DWORD
|
|
GetFullNameFromId(
|
|
PINIPRINTER pIniPrinter,
|
|
DWORD JobId,
|
|
BOOL fJob,
|
|
LPWSTR pFileName,
|
|
BOOL Remote
|
|
);
|
|
|
|
DWORD
|
|
GetPrinterDirectory(
|
|
PINIPRINTER pIniPrinter,
|
|
BOOL Remote,
|
|
LPWSTR pFileName,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
CreateSpoolDirectory(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
|
|
LPWSTR
|
|
CreatePrintProcDirectory(
|
|
LPWSTR lpEnvironment,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
LPBYTE
|
|
PackStrings(
|
|
LPWSTR *pSource,
|
|
LPBYTE pDest,
|
|
DWORD *DestOffsets,
|
|
LPBYTE pEnd
|
|
);
|
|
|
|
VOID
|
|
ProcessShadowJobs(
|
|
PINIPRINTER pIniPrinter,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
PINIJOB
|
|
ReadShadowJob(
|
|
LPWSTR szDir,
|
|
PWIN32_FIND_DATA pFindFileData,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
WriteShadowJob(
|
|
PINIJOB pIniJob
|
|
);
|
|
|
|
BOOL
|
|
ReallocJobIdMap(
|
|
DWORD NewSize
|
|
);
|
|
|
|
BOOL
|
|
BuildAllPrinters(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
BuildEnvironmentInfo(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
BuildPrinterInfo(
|
|
PINISPOOLER pIniSpooler,
|
|
BOOL UpdateChangeID
|
|
);
|
|
|
|
VOID
|
|
ReadJobInfo(
|
|
PWIN32_FIND_DATA pFindFileData
|
|
);
|
|
|
|
BOOL
|
|
BuildAllPorts(
|
|
);
|
|
|
|
BOOL
|
|
BuildDriverInfo(
|
|
HKEY hEnvironmentKey,
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
DWORD
|
|
GetDriverVersionDirectory(
|
|
LPWSTR pDir,
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
PINIVERSION pIniVersion,
|
|
BOOL Remote,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
BuildPrintProcInfo(
|
|
HKEY hEnvironmentKey,
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
typedef BOOL (*PFNREBUILD)(LPWSTR, PWIN32_FIND_DATA);
|
|
|
|
BOOL
|
|
Rebuild(
|
|
LPWSTR lpDirectory,
|
|
PFNREBUILD pfn
|
|
);
|
|
|
|
BOOL
|
|
RemoveFromList(
|
|
PINIENTRY *ppIniHead,
|
|
PINIENTRY pIniEntry
|
|
);
|
|
|
|
PINIDRIVER
|
|
GetDriver(
|
|
HKEY hVersionKey,
|
|
LPWSTR DriverName,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
DWORD
|
|
GetDriverDirectory(
|
|
LPWSTR lpDir,
|
|
PINIENVIRONMENT lpEnvironment,
|
|
BOOL Remote,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
DWORD
|
|
GetProcessorDirectory(
|
|
LPWSTR lpDir,
|
|
LPWSTR lpEnvironment,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
LPWSTR
|
|
GetFileName(
|
|
LPWSTR pPathName
|
|
);
|
|
|
|
BOOL
|
|
CopyDriverFile(
|
|
LPWSTR lpEnvironment,
|
|
LPWSTR lpFileName
|
|
);
|
|
|
|
BOOL
|
|
CreateCompleteDirectory(
|
|
LPWSTR lpDir
|
|
);
|
|
|
|
BOOL
|
|
OpenMonitorPort(
|
|
PINIPORT pIniPort,
|
|
PINIMONITOR pIniLangMonitor,
|
|
LPWSTR pszPrinterName,
|
|
BOOL bWaitForEvent
|
|
);
|
|
|
|
BOOL
|
|
CloseMonitorPort(
|
|
PINIPORT pIniPort,
|
|
BOOL bWaitForEvent
|
|
);
|
|
|
|
VOID
|
|
ShutdownPorts(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
CreatePortThread(
|
|
PINIPORT pIniPort
|
|
);
|
|
|
|
#define WAIT TRUE
|
|
#define NOWAIT FALSE
|
|
|
|
BOOL
|
|
DestroyPortThread(
|
|
PINIPORT pIniPort,
|
|
BOOL bShutdown
|
|
);
|
|
|
|
DWORD
|
|
PortThread(
|
|
PINIPORT pIniPort
|
|
);
|
|
|
|
BOOL
|
|
DeleteJob(
|
|
PINIJOB pIniJob,
|
|
BOOL bBroadcast
|
|
);
|
|
|
|
VOID
|
|
DeleteJobCheck(
|
|
PINIJOB pIniJob
|
|
);
|
|
|
|
BOOL
|
|
UpdateWinIni(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
PKEYDATA
|
|
CreateTokenList(
|
|
LPWSTR pKeyData
|
|
);
|
|
|
|
PINIPORT
|
|
CreatePortEntry(
|
|
LPWSTR pPortName,
|
|
PINIMONITOR pIniMonitor,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
VOID
|
|
GetPrinterPorts(
|
|
PINIPRINTER pIniPrinter,
|
|
LPWSTR pszPorts,
|
|
DWORD *pcbNeeded
|
|
);
|
|
|
|
DWORD
|
|
SchedulerThread(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
UpdatePrinterIni(
|
|
PINIPRINTER pIniPrinter,
|
|
DWORD dwChangeID
|
|
);
|
|
|
|
BOOL
|
|
NoConfigCahngeUpdatePrinterIni(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
SetLocalPrinter(
|
|
PINIPRINTER pIniPrinter,
|
|
DWORD Level,
|
|
PBYTE pPrinterInfo,
|
|
PDWORD pdwPrinterVector,
|
|
DWORD SecurityInformation
|
|
);
|
|
|
|
BOOL
|
|
CopyPrinterDevModeToIniPrinter(
|
|
IN OUT PINIPRINTER pIniPrinter,
|
|
IN LPDEVMODE pDevMode
|
|
);
|
|
|
|
VOID
|
|
MonitorThread(
|
|
PINIPORT pIniMonitor
|
|
);
|
|
|
|
BOOL
|
|
InitializeForms(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
InitializeNet(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
ShareThisPrinter(
|
|
PINIPRINTER pIniPrinter,
|
|
LPWSTR pShareName,
|
|
BOOL Share
|
|
);
|
|
|
|
PINIJOB
|
|
FindJob(
|
|
PINIPRINTER pIniPrinter,
|
|
DWORD JobId,
|
|
PDWORD pPosition
|
|
);
|
|
|
|
PINIJOB
|
|
FindServerJob(
|
|
PINISPOOLER pIniSpooler,
|
|
DWORD JobId,
|
|
PDWORD pPosition,
|
|
PINIPRINTER* ppIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
MyName(
|
|
LPWSTR pName,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
HANDLE
|
|
AddNetPrinter(
|
|
LPBYTE pPrinterInfo,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
CreateServerThread(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
GetSid(
|
|
PHANDLE hToken
|
|
);
|
|
|
|
BOOL
|
|
SetCurrentSid(
|
|
HANDLE phToken
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumPrinters(
|
|
DWORD Flags,
|
|
LPWSTR Name,
|
|
DWORD Level,
|
|
LPBYTE pPrinterEnum,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL
|
|
LocalOpenPrinter(
|
|
LPWSTR pPrinterName,
|
|
LPHANDLE phPrinter,
|
|
LPPRINTER_DEFAULTS pDefault
|
|
);
|
|
|
|
BOOL
|
|
LocalOpenPrinterEx(
|
|
LPWSTR pPrinterName,
|
|
LPHANDLE phPrinter,
|
|
LPPRINTER_DEFAULTS pDefault,
|
|
LPBYTE pSplClientInfo,
|
|
DWORD dwLevel
|
|
);
|
|
|
|
BOOL
|
|
LocalSetJob(
|
|
HANDLE hPrinter,
|
|
DWORD JobId,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD Command
|
|
);
|
|
|
|
BOOL
|
|
LocalGetJob(
|
|
HANDLE hPrinter,
|
|
DWORD JobId,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumJobs(
|
|
HANDLE hPrinter,
|
|
DWORD FirstJob,
|
|
DWORD NoJobs,
|
|
DWORD Level,
|
|
LPBYTE pJob,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
HANDLE
|
|
LocalAddPrinter(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPrinter
|
|
);
|
|
|
|
HANDLE
|
|
LocalAddPrinterEx(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPrinter,
|
|
LPBYTE pSplClientInfo,
|
|
DWORD dwClientInfoLevel
|
|
);
|
|
|
|
BOOL
|
|
DeletePrinterForReal(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePrinter(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalAddPrinterConnection(
|
|
LPWSTR pName
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePrinterConnection(
|
|
LPWSTR pName
|
|
);
|
|
|
|
BOOL
|
|
LocalGetPrinter(
|
|
HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pPrinter,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded
|
|
);
|
|
|
|
BOOL
|
|
LocalAddPrinterDriver(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumPrinterDrivers(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL
|
|
LocalGetPrinterDriverDirectory(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pDriverDirectory,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePrinterDriver(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
LPWSTR pDriverName
|
|
);
|
|
|
|
BOOL
|
|
LocalAddPrintProcessor(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
LPWSTR pPathName,
|
|
LPWSTR pPrintProcessorName
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumPrintProcessors(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pPrintProcessorInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL
|
|
LocalGetPrintProcessorDirectory(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
DWORD Level,
|
|
LPBYTE pPrintProcessorInfo,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePrintProcessor(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
LPWSTR pPrintProcessorName
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumPrintProcessorDatatypes(
|
|
LPWSTR pName,
|
|
LPWSTR pPrintProcessorName,
|
|
DWORD Level,
|
|
LPBYTE pDatatypes,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
DWORD
|
|
LocalStartDocPrinter(
|
|
HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pDocInfo
|
|
);
|
|
|
|
BOOL
|
|
LocalStartPagePrinter(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalWritePrinter(
|
|
HANDLE hPrinter,
|
|
LPVOID pBuf,
|
|
DWORD cbBuf,
|
|
LPDWORD pcWritten
|
|
);
|
|
|
|
BOOL
|
|
LocalEndPagePrinter(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalAbortPrinter(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalReadPrinter(
|
|
HANDLE hPrinter,
|
|
LPVOID pBuf,
|
|
DWORD cbBuf,
|
|
LPDWORD pNoBytesRead
|
|
);
|
|
|
|
BOOL
|
|
LocalEndDocPrinter(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
BOOL
|
|
LocalAddJob(
|
|
HANDLE hPrinter,
|
|
DWORD Level,
|
|
LPBYTE pData,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded
|
|
);
|
|
|
|
BOOL
|
|
LocalScheduleJob(
|
|
HANDLE hPrinter,
|
|
DWORD JobId
|
|
);
|
|
|
|
DWORD
|
|
LocalWaitForPrinterChange(
|
|
HANDLE hPrinter,
|
|
DWORD Flags
|
|
);
|
|
|
|
BOOL
|
|
SetSpoolClosingChange(
|
|
PSPOOL pSpool
|
|
);
|
|
|
|
BOOL
|
|
SetPrinterChange(
|
|
PINIPRINTER pIniPrinter,
|
|
PINIJOB pIniJob,
|
|
PDWORD pdwNotifyVectors,
|
|
DWORD Flags,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumMonitors(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pMonitors,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL
|
|
LocalEnumPorts(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pPorts,
|
|
DWORD cbBuf,
|
|
LPDWORD pcbNeeded,
|
|
LPDWORD pcReturned
|
|
);
|
|
|
|
BOOL
|
|
LocalAddPort(
|
|
LPWSTR pName,
|
|
HWND hWnd,
|
|
LPWSTR pMonitorName
|
|
);
|
|
|
|
BOOL
|
|
LocalConfigurePort(
|
|
LPWSTR pName,
|
|
HWND hWnd,
|
|
LPWSTR pPortName
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePort(
|
|
LPWSTR pName,
|
|
HWND hWnd,
|
|
LPWSTR pPortName
|
|
);
|
|
|
|
HANDLE
|
|
LocalCreatePrinterIC(
|
|
HANDLE hPrinter,
|
|
LPDEVMODE pDevMode
|
|
);
|
|
|
|
BOOL
|
|
LocalPlayGdiScriptOnPrinterIC(
|
|
HANDLE hPrinterIC,
|
|
LPBYTE pIn,
|
|
DWORD cIn,
|
|
LPBYTE pOut,
|
|
DWORD cOut,
|
|
DWORD ul
|
|
);
|
|
|
|
BOOL
|
|
LocalDeletePrinterIC(
|
|
HANDLE hPrinterIC
|
|
);
|
|
|
|
DWORD
|
|
LocalPrinterMessageBox(
|
|
HANDLE hPrinter,
|
|
DWORD Error,
|
|
HWND hWnd,
|
|
LPWSTR pText,
|
|
LPWSTR pCaption,
|
|
DWORD dwType
|
|
);
|
|
|
|
BOOL
|
|
LocalAddMonitor(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pMonitors
|
|
);
|
|
|
|
BOOL
|
|
LocalDeleteMonitor(
|
|
LPWSTR pName,
|
|
LPWSTR pEnvironment,
|
|
LPWSTR pMonitorName
|
|
);
|
|
|
|
BOOL
|
|
LocalFindFirstPrinterChangeNotification(
|
|
HANDLE hPrinter,
|
|
DWORD fdwFlags,
|
|
DWORD fdwOptions,
|
|
HANDLE hNotify,
|
|
PDWORD pfdwStatus,
|
|
PVOID pvReserved0,
|
|
PVOID pvReserved1
|
|
);
|
|
|
|
|
|
BOOL
|
|
LocalFindClosePrinterChangeNotification(
|
|
HANDLE hPrinter
|
|
);
|
|
|
|
|
|
PINIPRINTPROC
|
|
FindDatatype(
|
|
PINIPRINTPROC pDefaultPrintProc,
|
|
LPWSTR pDatatype
|
|
);
|
|
|
|
PINIPRINTPROC
|
|
InitializePrintProcessor(
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
LPWSTR pPrintProcessorName,
|
|
LPWSTR pPathName,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
PINIMONITOR
|
|
CreateMonitorEntry(
|
|
LPWSTR pMonitorDll,
|
|
LPWSTR pMonitorName,
|
|
LPWSTR pRegistryRoot,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
PINIPORT
|
|
FindIniPortFromIniPrinter(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
LPWSTR
|
|
GetErrorString(
|
|
DWORD Error
|
|
);
|
|
|
|
#define NULL_TERMINATED 0
|
|
INT
|
|
AnsiToUnicodeString(
|
|
LPSTR pAnsi,
|
|
LPWSTR pUnicode,
|
|
DWORD StringLength
|
|
);
|
|
|
|
int
|
|
Message(
|
|
HWND hwnd,
|
|
DWORD Type,
|
|
int CaptionID,
|
|
int TextID,
|
|
...
|
|
);
|
|
|
|
DWORD
|
|
MyMessageBox(
|
|
HWND hWnd,
|
|
PSPOOL pSpool,
|
|
DWORD Error,
|
|
LPWSTR pText,
|
|
LPWSTR pCaption,
|
|
DWORD dwType,
|
|
BOOL bInternal
|
|
);
|
|
|
|
|
|
|
|
DWORD
|
|
PromptWriteError(
|
|
PSPOOL pSpool,
|
|
PHANDLE phThread,
|
|
PDWORD pdwThreadId
|
|
);
|
|
|
|
|
|
DWORD
|
|
InitializeEventLogging(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
VOID LogEvent(
|
|
PINISPOOLER pIniSpooler,
|
|
WORD EventType,
|
|
NTSTATUS EventID,
|
|
LPWSTR pFirstString,
|
|
...
|
|
);
|
|
|
|
#define LOG_ERROR EVENTLOG_ERROR_TYPE
|
|
#define LOG_WARNING EVENTLOG_WARNING_TYPE
|
|
#define LOG_INFO EVENTLOG_INFORMATION_TYPE
|
|
#define LOG_SUCCESS EVENTLOG_AUDIT_SUCCESS
|
|
#define LOG_FAILURE EVENTLOG_AUDIT_FAILURE
|
|
|
|
#define LOG_ALL_EVENTS ( LOG_ERROR | LOG_WARNING | LOG_INFO | LOG_SUCCESS | LOG_FAILURE )
|
|
#define LOG_DEFAULTS_WORKSTATION_EVENTS ( LOG_ERROR | LOG_WARNING | LOG_SUCCESS | LOG_FAILURE )
|
|
|
|
|
|
#define IDS_LOCALSPOOLER 100
|
|
#define IDS_ERROR_WRITING_TO_PORT 101
|
|
#define IDS_ERROR_WRITING_TO_DISK 102
|
|
#define IDS_UNRECOGNIZED_ERROR 103
|
|
#define IDS_PRINTER_DRIVERS 104
|
|
#define IDS_UNNAMED 105
|
|
#define IDS_ERROR_WRITING_GENERAL 106
|
|
#define IDS_REMOTE_DOC 107
|
|
#define IDS_LOCAL_DOC 108
|
|
#define IDS_FASTPRINT_TIMEOUT 109
|
|
|
|
|
|
// Maximum length of a builtin form
|
|
//
|
|
|
|
#define FORM_NAME_LEN 31
|
|
|
|
// String table Ids for builtin form names
|
|
//
|
|
#define IDS_FORM_LETTER 200
|
|
#define IDS_FORM_LETTER_SMALL 201
|
|
#define IDS_FORM_TABLOID 202
|
|
#define IDS_FORM_LEDGER 203
|
|
#define IDS_FORM_LEGAL 204
|
|
#define IDS_FORM_STATEMENT 205
|
|
#define IDS_FORM_EXECUTIVE 206
|
|
#define IDS_FORM_A3 207
|
|
#define IDS_FORM_A4 208
|
|
#define IDS_FORM_A4_SMALL 209
|
|
#define IDS_FORM_A5 210
|
|
#define IDS_FORM_B4 211
|
|
#define IDS_FORM_B5 212
|
|
#define IDS_FORM_FOLIO 213
|
|
#define IDS_FORM_QUARTO 214
|
|
#define IDS_FORM_10X14 215
|
|
#define IDS_FORM_11X17 216
|
|
#define IDS_FORM_NOTE 217
|
|
#define IDS_FORM_ENVELOPE9 218
|
|
#define IDS_FORM_ENVELOPE10 219
|
|
#define IDS_FORM_ENVELOPE11 220
|
|
#define IDS_FORM_ENVELOPE12 221
|
|
#define IDS_FORM_ENVELOPE14 222
|
|
#define IDS_FORM_ENVELOPE_CSIZE_SHEET 223
|
|
#define IDS_FORM_ENVELOPE_DSIZE_SHEET 224
|
|
#define IDS_FORM_ENVELOPE_ESIZE_SHEET 225
|
|
#define IDS_FORM_ENVELOPE_DL 226
|
|
#define IDS_FORM_ENVELOPE_C5 227
|
|
#define IDS_FORM_ENVELOPE_C3 228
|
|
#define IDS_FORM_ENVELOPE_C4 229
|
|
#define IDS_FORM_ENVELOPE_C6 230
|
|
#define IDS_FORM_ENVELOPE_C65 231
|
|
#define IDS_FORM_ENVELOPE_B4 232
|
|
#define IDS_FORM_ENVELOPE_B5 233
|
|
#define IDS_FORM_ENVELOPE_B6 234
|
|
#define IDS_FORM_ENVELOPE 235
|
|
#define IDS_FORM_ENVELOPE_MONARCH 236
|
|
#define IDS_FORM_SIX34_ENVELOPE 237
|
|
#define IDS_FORM_US_STD_FANFOLD 238
|
|
#define IDS_FORM_GMAN_STD_FANFOLD 239
|
|
#define IDS_FORM_GMAN_LEGAL_FANFOLD 240
|
|
|
|
|
|
VOID LogJobPrinted(
|
|
PINIJOB pIniJob
|
|
);
|
|
|
|
#define MAP_READABLE 0
|
|
#define MAP_SETTABLE 1
|
|
|
|
DWORD
|
|
MapJobStatus(
|
|
DWORD Type,
|
|
DWORD Status
|
|
);
|
|
|
|
DWORD
|
|
MapPrinterStatus(
|
|
DWORD Type,
|
|
DWORD Status
|
|
);
|
|
|
|
|
|
LPWSTR RemoveBackslashesForRegistryKey(
|
|
LPWSTR pSource,
|
|
const LPWSTR pScratch
|
|
);
|
|
|
|
|
|
BOOL
|
|
OpenPrinterPortW(
|
|
LPWSTR pPrinterName,
|
|
HANDLE *pHandle,
|
|
LPPRINTER_DEFAULTS pDefault
|
|
);
|
|
|
|
VOID
|
|
BroadcastChange(
|
|
PINISPOOLER pIniSpooler,
|
|
DWORD Message,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
VOID
|
|
MyMessageBeep(
|
|
DWORD fuType
|
|
);
|
|
|
|
|
|
VOID
|
|
SendJobAlert(
|
|
PINIJOB pIniJob
|
|
);
|
|
|
|
BOOL
|
|
CheckDataTypes(
|
|
PINIPRINTPROC pIniPrintProc,
|
|
LPWSTR pDatatype
|
|
);
|
|
|
|
BOOL
|
|
ValidatePortTokenList(
|
|
PKEYDATA pKeyData,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
VOID
|
|
FreePortTokenList(
|
|
PKEYDATA pKeyData
|
|
);
|
|
|
|
DWORD
|
|
ValidatePrinterInfo(
|
|
IN PPRINTER_INFO_2 pPrinter,
|
|
IN PINISPOOLER pIniSpooler,
|
|
IN PINIPRINTER pIniPrinter OPTIONAL,
|
|
OUT LPWSTR* ppszLocalName OPTIONAL
|
|
);
|
|
|
|
|
|
BOOL
|
|
DeletePortEntry(
|
|
PINIPORT pIniPort
|
|
);
|
|
|
|
BOOL
|
|
GetTokenHandle(
|
|
PHANDLE pTokenHandle
|
|
);
|
|
|
|
|
|
VOID
|
|
LogJobInfo(
|
|
PINISPOOLER pIniSpooler,
|
|
NTSTATUS EventId,
|
|
DWORD JobId,
|
|
LPWSTR pDocumentName,
|
|
LPWSTR pUser,
|
|
LPWSTR pPrinterName,
|
|
DWORD curPos
|
|
);
|
|
|
|
LONG
|
|
Myatol(
|
|
LPWSTR nptr
|
|
);
|
|
|
|
|
|
DWORD
|
|
DeleteSubkeys(
|
|
HKEY hKey
|
|
);
|
|
|
|
|
|
PINIDRIVER
|
|
FindLocalDriver(
|
|
LPWSTR pz
|
|
);
|
|
|
|
|
|
PINIDRIVER
|
|
FindCompatibleDriver(
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
PINIVERSION * ppIniVersion,
|
|
LPWSTR pDriverName,
|
|
DWORD dwMajorVersion,
|
|
BOOL bFindAnyDriver
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
QueryUpgradeFlag(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
|
|
BOOL
|
|
LocalAddPortEx(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pBuffer,
|
|
LPWSTR pMonitorName
|
|
);
|
|
|
|
|
|
BOOL
|
|
ValidateSpoolHandle(
|
|
PSPOOL pSpool,
|
|
DWORD dwDisallowMask
|
|
);
|
|
|
|
|
|
PSECURITY_DESCRIPTOR
|
|
MapPrinterSDToShareSD(
|
|
PSECURITY_DESCRIPTOR pPrinterSD
|
|
);
|
|
|
|
BOOL
|
|
CallDevQueryPrint(
|
|
LPWSTR pPrinterName,
|
|
LPDEVMODE pDevMode,
|
|
LPWSTR ErrorString,
|
|
DWORD dwErrorString,
|
|
DWORD dwPrinterFlags,
|
|
DWORD dwJobFlags
|
|
);
|
|
|
|
|
|
BOOL
|
|
InitializeWinSpoolDrv(
|
|
VOID
|
|
);
|
|
|
|
|
|
VOID
|
|
FixDevModeDeviceName(
|
|
LPWSTR pPrinterName,
|
|
PDEVMODE pDevMode,
|
|
DWORD cbDevMode
|
|
);
|
|
|
|
VOID
|
|
RemoveOldNetPrinters(
|
|
PPRINTER_INFO_1 pCurrentPrinterInfo1
|
|
);
|
|
|
|
PINIJOB
|
|
AssignFreeJobToFreePort(
|
|
PINIPORT pIniPort,
|
|
DWORD *pTimeToWait
|
|
);
|
|
|
|
BOOL
|
|
ValidRawDatatype(
|
|
LPWSTR pszDataType);
|
|
|
|
BOOL
|
|
InternalAddPrinterDriver(
|
|
LPWSTR pName,
|
|
DWORD Level,
|
|
LPBYTE pDriverInfo,
|
|
PINISPOOLER pIniSpooler,
|
|
BOOL bUseScratchDir,
|
|
BOOL bImpersonateOnCreate
|
|
);
|
|
|
|
VOID
|
|
CheckSizeDetectionThread(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
VOID
|
|
Upgrade31DriversRegistryForAllEnvironments(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
HANDLE
|
|
CreatePrinterHandle(
|
|
LPWSTR pPrinterName,
|
|
PINIPRINTER pIniPrinter,
|
|
PINIPORT pIniPort,
|
|
PINIPORT pIniNetPort,
|
|
PINIJOB pIniJob,
|
|
DWORD TypeofHandle,
|
|
HANDLE hPort,
|
|
PPRINTER_DEFAULTS pDefaults,
|
|
PINISPOOLER pIniSpooler,
|
|
DWORD AccessRequested,
|
|
LPBYTE pSplClientInfo,
|
|
DWORD dwLevel,
|
|
HANDLE hReadFile
|
|
);
|
|
|
|
PINIPRINTER
|
|
FindPrinterShare(
|
|
LPCWSTR pShareName,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
|
|
PINIJOB
|
|
CreateJobEntry(
|
|
PSPOOL pSpool,
|
|
DWORD Level,
|
|
LPBYTE pDocInfo,
|
|
DWORD JobId,
|
|
BOOL bRemote,
|
|
DWORD JobStatus);
|
|
|
|
BOOL
|
|
DeletePrinterCheck(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
|
|
BOOL
|
|
DeletePrinterIni(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
CopyPrinterIni(
|
|
PINIPRINTER pIniPrinter,
|
|
LPWSTR pNewName
|
|
);
|
|
|
|
BOOL
|
|
UpdateString(
|
|
LPWSTR* ppszCur,
|
|
LPWSTR pszNew);
|
|
|
|
|
|
BOOL
|
|
SetPrinterPorts(
|
|
PSPOOL pSpool,
|
|
PINIPRINTER pIniPrinter,
|
|
PKEYDATA pKeyData
|
|
);
|
|
|
|
VOID
|
|
InternalDeletePrinter(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
AddIniPrinterToIniPort(
|
|
PINIPORT pIniPort,
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
LPWSTR
|
|
FindFileName(
|
|
LPWSTR pPathName
|
|
);
|
|
|
|
|
|
BOOL
|
|
InternalCopyFile(
|
|
HANDLE hFile,
|
|
PWIN32_FIND_DATA pSourceFileData,
|
|
LPWSTR pTagetFileName,
|
|
BOOL bOverWriteIfTargetExists
|
|
);
|
|
|
|
BOOL
|
|
UpdateFile(
|
|
HANDLE hSourceFile, // Handle to Source File
|
|
LPWSTR SourceFile, // Fully qualified path to source file
|
|
LPWSTR pDestinationDirectory, // Fully qualified path to destination directory
|
|
LPWSTR pOldFileDir, // Fully qualified path to directory for old files ( optional )
|
|
BOOL bImpersonateOnCreate, // FALSE to revert to System
|
|
LPBOOL pbFileUpdated, // set TRUE on return if any file was updated
|
|
LPBOOL pbFileMoved // set TRUE if target file was moved
|
|
);
|
|
|
|
|
|
BOOL
|
|
PrinterCreateKey(
|
|
HKEY hKey,
|
|
LPWSTR pSubKey,
|
|
PHKEY phkResult,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
|
|
BOOL
|
|
RegSetString(
|
|
HANDLE hPrinterKey,
|
|
LPWSTR pValueName,
|
|
LPWSTR pStringValue,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
|
|
BOOL
|
|
RegSetDWord(
|
|
HANDLE hPrinterKey,
|
|
LPWSTR pValueName,
|
|
DWORD dwParam,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
VOID
|
|
CheckAndUpdatePrinterRegAll(
|
|
PINISPOOLER pIniSpooler,
|
|
LPWSTR pszPrinterName,
|
|
LPWSTR pszPort,
|
|
BOOL bDelete
|
|
);
|
|
|
|
|
|
|
|
|
|
BOOL
|
|
ForEachPrinterCallDriverDrvUpgrade(
|
|
PINISPOOLER pIniSpooler,
|
|
LPWSTR pOldDriverDir
|
|
);
|
|
|
|
|
|
|
|
BOOL
|
|
DeleteAllFilesInDirectory(
|
|
LPWSTR pDirectory
|
|
);
|
|
|
|
BOOL
|
|
DeleteAllFilesAndDirectory(
|
|
LPWSTR pDirectory
|
|
);
|
|
|
|
VOID
|
|
Upgrade35Forms(
|
|
HKEY hFormsKey,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
UpgradeDriverData(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
BOOL
|
|
FileExists(
|
|
LPWSTR pFileName
|
|
);
|
|
|
|
|
|
BOOL
|
|
DirectoryExists(
|
|
LPWSTR pDirectoryName
|
|
);
|
|
|
|
PINIVERSION
|
|
FindVersionEntry(
|
|
PINIENVIRONMENT pIniEnvironment,
|
|
DWORD dwVersion
|
|
);
|
|
|
|
|
|
BOOL
|
|
CreateDirectoryWithoutImpersonatingUser(
|
|
LPWSTR pDirectory
|
|
);
|
|
|
|
VOID
|
|
InsertVersionList(
|
|
PINIVERSION* pIniVersionHead,
|
|
PINIVERSION pIniVersion
|
|
);
|
|
|
|
BOOL
|
|
SameDependentFiles(
|
|
LPWSTR DependentFiles1,
|
|
LPWSTR DependentFiles2
|
|
);
|
|
|
|
int
|
|
wcsicmpEx(
|
|
LPWSTR s1,
|
|
LPWSTR s2
|
|
);
|
|
|
|
BOOL
|
|
RegSetString(
|
|
HANDLE hKey,
|
|
LPWSTR pValueName,
|
|
LPWSTR pStringValue,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
BOOL
|
|
RegSetDWord(
|
|
HANDLE hKey,
|
|
LPWSTR pValueName,
|
|
DWORD dwParam,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
BOOL
|
|
RegSetBinaryData(
|
|
HKEY hKey,
|
|
LPWSTR pValueName,
|
|
LPBYTE pData,
|
|
DWORD cbData,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
BOOL
|
|
RegSetMultiString(
|
|
HANDLE hKey,
|
|
LPWSTR pValueName,
|
|
LPWSTR pStringValue,
|
|
DWORD cbString,
|
|
PDWORD pdwLastError
|
|
);
|
|
|
|
BOOL
|
|
RegGetString(
|
|
HANDLE hKey,
|
|
LPWSTR pValueName,
|
|
LPWSTR *ppValue,
|
|
LPDWORD pcchCount,
|
|
PDWORD pdwLastError,
|
|
BOOL bFailIfNotFound
|
|
);
|
|
|
|
DWORD
|
|
ValidatePrinterName(
|
|
LPWSTR pszNewName,
|
|
PINISPOOLER pIniSpooler,
|
|
PINIPRINTER pIniPrinter,
|
|
LPWSTR *ppszLocalName
|
|
);
|
|
|
|
DWORD
|
|
ValidatePrinterShareName(
|
|
LPWSTR pszNewShareName,
|
|
PINISPOOLER pIniSpooler,
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
BOOL
|
|
AllocOrUpdateString(
|
|
LPWSTR *ppString,
|
|
LPWSTR pNewValue,
|
|
LPWSTR pOldValue,
|
|
BOOL *bFail);
|
|
|
|
VOID
|
|
FreeStructurePointers(
|
|
LPBYTE lpStruct,
|
|
LPBYTE lpStruct2,
|
|
LPDWORD lpOffsets);
|
|
|
|
VOID
|
|
CopyNewOffsets(
|
|
LPBYTE pStruct,
|
|
LPBYTE pTempStruct,
|
|
LPDWORD lpOffsets);
|
|
|
|
LPWSTR
|
|
GetConfigFilePath(
|
|
IN PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
PDEVMODE
|
|
ConvertDevModeToSpecifiedVersion(
|
|
IN PINIPRINTER pIniPrinter,
|
|
IN PDEVMODE pDevMode,
|
|
IN LPWSTR pszConfigFile, OPTIONAL
|
|
IN LPWSTR pszPrinterNameWithToken, OPTIONAL
|
|
IN BOOL bNt35xVersion
|
|
);
|
|
|
|
BOOL
|
|
CreateRedirectionThread(
|
|
PINIPORT pIniPort
|
|
);
|
|
|
|
VOID
|
|
RemoveDeviceName(
|
|
PINIPORT pIniPort
|
|
);
|
|
|
|
BOOL
|
|
IsPortType(
|
|
LPWSTR pPort,
|
|
LPWSTR pPrefix
|
|
);
|
|
|
|
BOOL
|
|
LocalSetPort(
|
|
LPWSTR pszName,
|
|
LPWSTR pszPortName,
|
|
DWORD dwLevel,
|
|
LPBYTE pPortInfo
|
|
);
|
|
|
|
DWORD
|
|
SetPrinterDataServer(
|
|
PINISPOOLER pIniSpooler,
|
|
LPWSTR pValueName,
|
|
DWORD Type,
|
|
LPBYTE pData,
|
|
DWORD cbData
|
|
);
|
|
|
|
BOOL
|
|
BuildPrintObjectProtection(
|
|
IN PUCHAR AceType,
|
|
IN DWORD AceCount,
|
|
IN PSID *AceSid,
|
|
IN ACCESS_MASK *AceMask,
|
|
IN BYTE *InheritFlags,
|
|
IN PSID OwnerSid,
|
|
IN PSID GroupSid,
|
|
IN PGENERIC_MAPPING GenericMap,
|
|
OUT PSECURITY_DESCRIPTOR *ppSecurityDescriptor
|
|
);
|
|
DWORD
|
|
UnicodeToAnsiString(
|
|
LPWSTR pUnicode,
|
|
LPSTR pAnsi,
|
|
DWORD dwBufferSize
|
|
);
|
|
|
|
LPWSTR
|
|
AnsiToUnicodeStringWithAlloc(
|
|
LPSTR pAnsi
|
|
);
|
|
|
|
VOID
|
|
FreeIniSpoolerOtherNames(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
DWORD
|
|
RestartJob(
|
|
PINIJOB pIniJob
|
|
);
|
|
|
|
VOID
|
|
UpdateReferencesToChainedJobs(
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
|
|
BOOL
|
|
PrinterDriverEvent(
|
|
PINIPRINTER pIniPrinter,
|
|
INT PrinterEvent,
|
|
LPARAM lParam
|
|
);
|
|
|
|
BOOL
|
|
SetPrinterShareInfo(
|
|
PINIPRINTER pIniPrinter
|
|
);
|
|
|
|
VOID
|
|
LinkPortToSpooler(
|
|
PINIPORT pIniPort,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
VOID
|
|
DelinkPortFromSpooler(
|
|
PINIPORT pIniPort,
|
|
PINISPOOLER pIniSpooler
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
Old2NewShadow(
|
|
PSHADOWFILE pShadowFile1,
|
|
PSHADOWFILE_2 pShadowFile2,
|
|
DWORD *nBytes
|
|
);
|