mirror of
https://github.com/reactos/reactos.git
synced 2024-09-08 11:50:08 +00:00
![Colin Finck](/assets/img/avatar_default.png)
PDBs reveal that these functions are also used in winspool.drv, but not imported from spoolss.dll to retain the client/server architecture. As winspool.drv highly benefits from the MarshallUp* functions, I put them in a source file shared between spoolss.dll and winspool.drv. The added API Tests cover my testing and all implemented features. One more item done from https://reactos.org/wiki/Printing !
74 lines
2.8 KiB
C
74 lines
2.8 KiB
C
/*
|
|
* PROJECT: ReactOS Printing Include files
|
|
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
|
|
* PURPOSE: Undocumented APIs of the Spooler Router "spoolss.dll" and internally shared interfaces
|
|
* COPYRIGHT: Copyright 2015-2017 Colin Finck (colin@reactos.org)
|
|
*/
|
|
|
|
#ifndef _REACTOS_SPOOLSS_H
|
|
#define _REACTOS_SPOOLSS_H
|
|
|
|
// Constants
|
|
#define MAX_PRINTER_NAME 220
|
|
|
|
typedef struct _MARSHALL_DOWN_INFO
|
|
{
|
|
DWORD dwOffset; /** Byte offset of this element within the structure or MAXDWORD to indicate the end of the array */
|
|
DWORD cbSize; /** Total size of this element in bytes under Windows. Unused here, I don't know what we need this number for. */
|
|
DWORD cbPerElementSize; /** If this element is a structure itself, this field gives the size in bytes of each element of the structure.
|
|
Otherwise, this is the same as cbTotalSize. E.g. for SYSTEMTIME, cbSize would be 16 and cbPerElementSize would be 2.
|
|
Unused here, I don't know what we need this number for. */
|
|
BOOL bAdjustAddress; /** TRUE if MarshallDownStructure shall adjust the address of this element, FALSE if it shall leave this element untouched. */
|
|
}
|
|
MARSHALL_DOWN_INFO, *PMARSHALL_DOWN_INFO;
|
|
|
|
/** From MS-RPRN, 2.2.1.10.1 */
|
|
typedef struct _PRINTER_INFO_STRESS
|
|
{
|
|
PWSTR pPrinterName;
|
|
PWSTR pServerName;
|
|
DWORD cJobs;
|
|
DWORD cTotalJobs;
|
|
DWORD cTotalBytes;
|
|
SYSTEMTIME stUpTime;
|
|
DWORD MaxcRef;
|
|
DWORD cTotalPagesPrinted;
|
|
DWORD dwGetVersion;
|
|
DWORD fFreeBuild;
|
|
DWORD cSpooling;
|
|
DWORD cMaxSpooling;
|
|
DWORD cRef;
|
|
DWORD cErrorOutOfPaper;
|
|
DWORD cErrorNotReady;
|
|
DWORD cJobError;
|
|
DWORD dwNumberOfProcessors;
|
|
DWORD dwProcessorType;
|
|
DWORD dwHighPartTotalBytes;
|
|
DWORD cChangeID;
|
|
DWORD dwLastError;
|
|
DWORD Status;
|
|
DWORD cEnumerateNetworkPrinters;
|
|
DWORD cAddNetPrinters;
|
|
USHORT wProcessorArchitecture;
|
|
USHORT wProcessorLevel;
|
|
DWORD cRefIC;
|
|
DWORD dwReserved2;
|
|
DWORD dwReserved3;
|
|
}
|
|
PRINTER_INFO_STRESS, *PPRINTER_INFO_STRESS;
|
|
|
|
PVOID WINAPI AlignRpcPtr(PVOID pBuffer, PDWORD pcbBuffer);
|
|
PWSTR WINAPI AllocSplStr(PCWSTR pwszInput);
|
|
PVOID WINAPI DllAllocSplMem(DWORD dwBytes);
|
|
BOOL WINAPI DllFreeSplMem(PVOID pMem);
|
|
BOOL WINAPI DllFreeSplStr(PWSTR pwszString);
|
|
BOOL WINAPI InitializeRouter(HANDLE SpoolerStatusHandle);
|
|
PBYTE WINAPI PackStrings(PWSTR* pSource, PBYTE pDest, const DWORD* DestOffsets, PBYTE pEnd);
|
|
PVOID WINAPI ReallocSplMem(PVOID pOldMem, DWORD cbOld, DWORD cbNew);
|
|
BOOL WINAPI ReallocSplStr(PWSTR* ppwszString, PCWSTR pwszInput);
|
|
BOOL WINAPI SplInitializeWinSpoolDrv(PVOID* pTable);
|
|
BOOL WINAPI SpoolerInit(VOID);
|
|
PDWORD WINAPI UndoAlignRpcPtr(PVOID pDestinationBuffer, PVOID pSourceBuffer, DWORD cbBuffer, PDWORD pcbNeeded);
|
|
|
|
#endif
|