windows-nt/Source/XPSP1/NT/printscan/print/spooler/localspl/clusspl.h

243 lines
3.8 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
clusspl.c
Abstract:
Cluster code support.
Author:
Albert Ting (AlbertT) 6-Oct-96
Revision History:
--*/
#ifndef _CLUSTER_H
#define _CLUSTER_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _CLUSTER {
DWORD signature;
HANDLE hSpooler;
} CLUSTER, *PCLUSTER;
#define CLS_SIGNATURE 0x636c73 // CLS
BOOL
ShutdownSpooler(
HANDLE hSpooler
);
VOID
ShutdownMonitors(
PINISPOOLER pIniSpooler
);
BOOL
InitializeShared(
PINISPOOLER pIniSpooler
);
VOID
DeleteShared(
PINISPOOLER pIniSpooler
);
/********************************************************************
Cluster registry access.
********************************************************************/
HKEY
OpenClusterParameterKey(
IN LPCTSTR pszResource
);
LONG
SplRegCreateKey(
IN HKEY hKey,
IN LPCTSTR pszSubKey,
IN DWORD dwOptions,
IN REGSAM samDesired,
IN PSECURITY_ATTRIBUTES pSecurityAttirbutes,
OUT PHKEY phkResult,
OUT PDWORD pdwDisposition,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegOpenKey(
IN HKEY hKey,
IN LPCTSTR pszSubKey,
IN REGSAM samDesired,
OUT PHKEY phkResult,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegCloseKey(
IN HKEY hKey,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegDeleteKey(
IN HKEY hKey,
IN LPCTSTR pszSubKey,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegEnumKey(
IN HKEY hKey,
IN DWORD dwIndex,
OUT LPTSTR pszName,
IN OUT PDWORD pcchName,
OUT PFILETIME pftLastWriteTime,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegQueryInfoKey(
HKEY hKey,
PDWORD pcSubKeys, OPTIONAL
PDWORD pcbKey, OPTIONAL
PDWORD pcValues, OPTIONAL
PDWORD pcbValue, OPTIONAL
PDWORD pcbData, OPTIONAL
PDWORD pcbSecurityDescriptor, OPTIONAL
PFILETIME pftLastWriteTime, OPTIONAL
PINISPOOLER pIniSpooler
);
LONG
SplRegSetValue(
IN HKEY hKey,
IN LPCTSTR pszValue,
IN DWORD dwType,
IN const BYTE* pData,
IN DWORD cbData,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegDeleteValue(
IN HKEY hKey,
IN LPCTSTR pszValue,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegEnumValue(
IN HKEY hKey,
IN DWORD dwIndex,
OUT LPTSTR pszValue,
IN OUT PDWORD pcbValue,
OUT PDWORD pType, OPTIONAL
OUT PBYTE pData,
IN OUT PDWORD pcbData,
IN PINISPOOLER pIniSpooler
);
LONG
SplRegQueryValue(
IN HKEY hKey,
IN LPCTSTR pszValue,
OUT PDWORD pType, OPTIONAL
OUT PBYTE pData,
IN OUT PDWORD pcbData,
IN PINISPOOLER pIniSpooler
);
/********************************************************************
Misc changes
********************************************************************/
VOID
BuildOtherNamesFromSpoolerInfo2(
PSPOOLER_INFO_2 pSpoolerInfo2,
PINISPOOLER pIniSpooler
);
LPTSTR
pszGetPrinterName(
PINIPRINTER pIniPrinter,
BOOL bFull,
LPCTSTR pszToken OPTIONAL
);
BOOL
CreateDlName(
IN LPCWSTR pszName,
IN PINIMONITOR pIniMonitor,
OUT LPCWSTR pszNameNew
);
PINIMONITOR
InitializeDMonitor(
PINIMONITOR pIniMonitor,
LPWSTR pszRegistryRoot
);
VOID
InitializeUMonitor(
PINIMONITOR pIniMonitor
);
//
// Clustering support.
//
BOOL
SplClusterSplOpen(
LPCTSTR pszServer,
LPCTSTR pszResource,
PHANDLE phSpooler,
LPCTSTR pszName,
LPCTSTR pszAddress
);
BOOL
SplClusterSplClose(
HANDLE hSpooler
);
BOOL
SplClusterSplIsAlive(
HANDLE hSpooler
);
DWORD
ClusterGetResourceDriveLetter(
IN LPCWSTR pszResource,
OUT LPWSTR *ppszClusResDriveLetter
);
DWORD
ClusterGetResourceID(
IN LPCWSTR pszResource,
OUT LPWSTR *ppszClusResID
);
#ifdef __cplusplus
}
#endif
#endif // ifdef _CLUSTER_H