2015-05-06 12:47:20 +00:00
|
|
|
@ stub AbortPrinter
|
|
|
|
@ stub AddDriverCatalog
|
|
|
|
@ stub AddFormW
|
2015-06-22 14:31:47 +00:00
|
|
|
@ stdcall AddJobW(long long ptr long ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub AddMonitorW
|
|
|
|
@ stub AddPerMachineConnectionW
|
|
|
|
@ stub AddPortExW
|
|
|
|
@ stub AddPortW
|
|
|
|
@ stub AddPrinterConnectionW
|
|
|
|
@ stub AddPrinterDriverExW
|
|
|
|
@ stub AddPrinterDriverW
|
|
|
|
@ stub AddPrinterExW
|
|
|
|
@ stub AddPrinterW
|
|
|
|
@ stub AddPrintProcessorW
|
|
|
|
@ stub AddPrintProvidorW
|
|
|
|
@ stub AdjustPointers
|
|
|
|
@ stub AdjustPointersInStructuresArray
|
|
|
|
@ stub AlignKMPtr
|
2017-04-13 16:48:40 +00:00
|
|
|
@ stdcall AlignRpcPtr(ptr ptr)
|
2015-06-09 13:22:25 +00:00
|
|
|
@ stdcall AllocSplStr(ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub AllowRemoteCalls
|
|
|
|
@ stub AppendPrinterNotifyInfoData
|
|
|
|
@ stub bGetDevModePerUser
|
|
|
|
@ stub bSetDevModePerUser
|
2017-07-14 20:05:27 +00:00
|
|
|
@ stdcall BuildOtherNamesFromMachineName(ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub CacheAddName
|
|
|
|
@ stub CacheCreateAndAddNode
|
|
|
|
@ stub CacheCreateAndAddNodeWithIPAddresses
|
|
|
|
@ stub CacheDeleteNode
|
|
|
|
@ stub CacheIsNameCluster
|
|
|
|
@ stub CacheIsNameInNodeList
|
|
|
|
@ stub CallDrvDevModeConversion
|
|
|
|
@ stub CallRouterFindFirstPrinterChangeNotification
|
|
|
|
@ stub CheckLocalCall
|
|
|
|
@ stdcall ClosePrinter(long)
|
|
|
|
@ stub ClusterSplClose
|
|
|
|
@ stub ClusterSplIsAlive
|
|
|
|
@ stub ClusterSplOpen
|
|
|
|
@ stub ConfigurePortW
|
|
|
|
@ stub CreatePrinterIC
|
|
|
|
@ stub DbgGetPointers
|
|
|
|
@ stub DeleteFormW
|
|
|
|
@ stub DeleteMonitorW
|
|
|
|
@ stub DeletePerMachineConnectionW
|
|
|
|
@ stub DeletePortW
|
|
|
|
@ stub DeletePrinter
|
|
|
|
@ stub DeletePrinterConnectionW
|
|
|
|
@ stub DeletePrinterDataExW
|
|
|
|
@ stub DeletePrinterDataW
|
|
|
|
@ stub DeletePrinterDriverExW
|
|
|
|
@ stub DeletePrinterDriverW
|
|
|
|
@ stub DeletePrinterIC
|
|
|
|
@ stub DeletePrinterKeyW
|
|
|
|
@ stub DeletePrintProcessorW
|
|
|
|
@ stub DeletePrintProvidorW
|
2015-06-09 13:22:25 +00:00
|
|
|
@ stdcall DllAllocSplMem(long)
|
|
|
|
@ stdcall DllFreeSplMem(ptr)
|
|
|
|
@ stdcall DllFreeSplStr(ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stdcall EndDocPrinter(long)
|
|
|
|
@ stdcall EndPagePrinter(long)
|
|
|
|
@ stub EnumFormsW
|
2015-06-27 12:36:45 +00:00
|
|
|
@ stdcall EnumJobsW(long long long long ptr long ptr ptr)
|
2015-07-07 17:06:48 +00:00
|
|
|
@ stdcall EnumMonitorsW(wstr long ptr long ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub EnumPerMachineConnectionsW
|
2015-07-07 17:06:48 +00:00
|
|
|
@ stdcall EnumPortsW(wstr long ptr long ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub EnumPrinterDataExW
|
|
|
|
@ stub EnumPrinterDataW
|
|
|
|
@ stub EnumPrinterDriversW
|
|
|
|
@ stub EnumPrinterKeyW
|
2015-07-07 17:06:48 +00:00
|
|
|
@ stdcall EnumPrintersW(long wstr long ptr long ptr ptr)
|
|
|
|
@ stdcall EnumPrintProcessorDatatypesW(wstr wstr long ptr long ptr ptr)
|
|
|
|
@ stdcall EnumPrintProcessorsW(wstr wstr long ptr long ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub FindClosePrinterChangeNotification
|
|
|
|
@ stub FlushPrinter
|
|
|
|
@ stub FormatPrinterForRegistryKey
|
|
|
|
@ stub FormatRegistryKeyForPrinter
|
|
|
|
@ stub FreeOtherNames
|
|
|
|
@ stub GetClientUserHandle
|
|
|
|
@ stub GetFormW
|
|
|
|
@ stub GetJobAttributes
|
2015-06-22 14:31:47 +00:00
|
|
|
@ stdcall GetJobW(long long long ptr long ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub GetNetworkId
|
[PRINTING]
- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
They support all features for Print Server and Printer Handles (minus security checks!)
I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.
One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..
svn path=/trunk/; revision=75125
2017-06-19 14:18:19 +00:00
|
|
|
@ stdcall GetPrinterDataExW(long wstr wstr ptr ptr long ptr)
|
|
|
|
@ stdcall GetPrinterDataW(long wstr ptr ptr long ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub GetPrinterDriverDirectoryW
|
|
|
|
@ stub GetPrinterDriverExW
|
|
|
|
@ stdcall GetPrinterDriverW(long wstr long ptr long ptr)
|
|
|
|
@ stdcall GetPrinterW(long long ptr long ptr)
|
|
|
|
@ stdcall GetPrintProcessorDirectoryW(wstr wstr long ptr long ptr)
|
|
|
|
@ stub GetServerPolicy
|
|
|
|
@ stub GetShrinkedSize
|
2015-05-12 14:43:25 +00:00
|
|
|
@ stdcall ImpersonatePrinterClient(long)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stdcall InitializeRouter(long)
|
|
|
|
@ stub IsNamedPipeRpcCall
|
|
|
|
@ stub LoadDriver
|
|
|
|
@ stub LoadDriverFiletoConvertDevmode
|
|
|
|
@ stub LoadDriverWithVersion
|
|
|
|
@ stub LogWmiTraceEvent
|
2015-06-24 16:26:33 +00:00
|
|
|
@ stdcall MarshallDownStructure(ptr ptr long long)
|
2018-01-17 09:13:25 +00:00
|
|
|
@ stdcall MarshallDownStructuresArray(ptr long ptr long long)
|
|
|
|
@ stdcall MarshallUpStructure(long ptr ptr long long)
|
|
|
|
@ stdcall MarshallUpStructuresArray(long ptr long ptr long long)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub MIDL_user_allocate1
|
|
|
|
@ stub MIDL_user_free1
|
|
|
|
@ stub OldGetPrinterDriverW
|
|
|
|
@ stub OpenPrinterExW
|
|
|
|
@ stub OpenPrinterPortW
|
|
|
|
@ stdcall OpenPrinterW(wstr ptr ptr)
|
2015-06-05 15:52:39 +00:00
|
|
|
@ stdcall PackStrings(ptr ptr ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub PartialReplyPrinterChangeNotification
|
|
|
|
@ stub PlayGdiScriptOnPrinterIC
|
|
|
|
@ stub PrinterHandleRundown
|
|
|
|
@ stub PrinterMessageBoxW
|
|
|
|
@ stub ProvidorFindClosePrinterChangeNotification
|
|
|
|
@ stub ProvidorFindFirstPrinterChangeNotification
|
|
|
|
@ stub pszDbgAllocMsgA
|
2015-06-28 15:51:32 +00:00
|
|
|
@ stdcall ReadPrinter(long ptr long ptr)
|
2015-06-09 13:22:25 +00:00
|
|
|
@ stdcall ReallocSplMem(ptr long long)
|
|
|
|
@ stdcall ReallocSplStr(ptr ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub RemoteFindFirstPrinterChangeNotification
|
|
|
|
@ stub ReplyClosePrinter
|
|
|
|
@ stub ReplyOpenPrinter
|
|
|
|
@ stub ReplyPrinterChangeNotification
|
|
|
|
@ stub ResetPrinterW
|
2015-05-12 14:43:25 +00:00
|
|
|
@ stdcall RevertToPrinterSelf()
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub RouterAllocBidiMem
|
|
|
|
@ stub RouterAllocBidiResponseContainer
|
|
|
|
@ stub RouterAllocPrinterNotifyInfo
|
|
|
|
@ stub RouterFindFirstPrinterChangeNotification
|
|
|
|
@ stub RouterFindNextPrinterChangeNotification
|
|
|
|
@ stub RouterFreeBidiMem
|
|
|
|
@ stub RouterFreePrinterNotifyInfo
|
|
|
|
@ stub RouterRefreshPrinterChangeNotification
|
|
|
|
@ stub RouterReplyPrinter
|
2015-06-28 15:51:32 +00:00
|
|
|
@ stdcall ScheduleJob(long long)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub SeekPrinter
|
|
|
|
@ stub SendRecvBidiData
|
|
|
|
@ stub SetAllocFailCount
|
|
|
|
@ stub SetFormW
|
2015-06-27 12:36:45 +00:00
|
|
|
@ stdcall SetJobW(long long long ptr long)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub SetPortW
|
[PRINTING]
- Implement GetPrinterDataA, GetPrinterDataExA, GetPrinterDataExW, GetPrinterDataW, SetPrinterDataA, SetPrinterDataExA, SetPrinterDataExW, SetPrinterDataW.
They support all features for Print Server and Printer Handles (minus security checks!)
I've also added tests for them.
- Store Printer data in SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers instead of SYSTEM\CurrentControlSet\Control\Print\Printers and create a registry symlink from the former path to the new one just like Windows does.
According to https://social.technet.microsoft.com/Forums/windowsserver/en-US/a683ab54-c43c-4ebe-af8f-1f7a65af2a51, this is needed when having >900 printers to work around a size limit of the SYSTEM registry hive. And if Windows has both locations, we need both for compatibility anyway.
- Add several settings which are queried by the new Printer Data APIs when working with Print Server Handles.
- Store the job directory in the Windows-compatible "DefaultSpoolDirectory" setting and make use of it.
- Revert the ASSERTs in LocalEnumPrinters again to let us verify the NULL pointer exceptions in localspl_apitest (thanks Serge! CORE-13433)
- Translate ERROR_INVALID_NAME to ERROR_INVALID_PRINTER_NAME in all cases in OpenPrinterW (thanks Victor! CORE-13412)
- Make EnumMonitorsW and EnumPortsW in spoolss more robust against failing Print Monitors.
- Remove the wrong !phPrinter check in OpenPrinterW to make Print Server Handles work for real.
- Fix error handling when memory allocation fails: HeapAlloc doesn't set last error, so it's just wrong to query or return it.
One more item done from https://reactos.org/wiki/Printing !
This is all still a big Work-in-Progress, with many subtle bugs deep down in ReactOS, for which I need to open additional tickets. But I didn't want to make this commit even bigger..
svn path=/trunk/; revision=75125
2017-06-19 14:18:19 +00:00
|
|
|
@ stdcall SetPrinterDataExW(long wstr wstr long ptr long)
|
|
|
|
@ stdcall SetPrinterDataW(long wstr long ptr long)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub SetPrinterW
|
|
|
|
@ stub SplCloseSpoolFileHandle
|
|
|
|
@ stub SplCommitSpoolData
|
|
|
|
@ stub SplDriverUnloadComplete
|
|
|
|
@ stub SplGetSpoolFileInfo
|
2015-06-09 13:22:25 +00:00
|
|
|
@ stdcall SplInitializeWinSpoolDrv(ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub SplIsSessionZero
|
2015-06-09 13:22:25 +00:00
|
|
|
@ stdcall SplIsUpgrade()
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub SplPowerEvent
|
|
|
|
@ stub SplProcessPnPEvent
|
|
|
|
@ stub SplPromptUIInUsersSession
|
|
|
|
@ stub SplReadPrinter
|
|
|
|
@ stub SplRegisterForDeviceEvents
|
|
|
|
@ stub SplShutDownRouter
|
|
|
|
@ stub SplUnregisterForDeviceEvents
|
|
|
|
@ stub SpoolerFindClosePrinterChangeNotification
|
|
|
|
@ stub SpoolerFindFirstPrinterChangeNotification
|
|
|
|
@ stub SpoolerFindNextPrinterChangeNotification
|
|
|
|
@ stub SpoolerFreePrinterNotifyInfo
|
|
|
|
@ stub SpoolerHasInitialized
|
2015-05-12 14:43:25 +00:00
|
|
|
@ stdcall SpoolerInit()
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stdcall StartDocPrinterW(long long ptr)
|
|
|
|
@ stdcall StartPagePrinter(long)
|
|
|
|
@ stub UndoAlignKMPtr
|
2017-04-13 16:48:40 +00:00
|
|
|
@ stdcall UndoAlignRpcPtr(ptr ptr long ptr)
|
2015-05-06 12:47:20 +00:00
|
|
|
@ stub UnloadDriver
|
|
|
|
@ stub UnloadDriverFile
|
|
|
|
@ stub UpdateBufferSize
|
|
|
|
@ stub UpdatePrinterRegAll
|
|
|
|
@ stub UpdatePrinterRegUser
|
|
|
|
@ stub vDbgLogError
|
|
|
|
@ stub WaitForPrinterChange
|
|
|
|
@ stub WaitForSpoolerInitialization
|
|
|
|
@ stdcall WritePrinter(long ptr long ptr)
|
|
|
|
@ stdcall XcvDataW(long wstr ptr long ptr long ptr ptr)
|