[PATCH 4/7] winspool.drv: Add performance counters service stubs.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/winspool.drv/info.c | 29 +++++++++++++++++++++++++++++ dlls/winspool.drv/winspool.drv.spec | 6 +++--- loader/wine.inf.in | 7 +++++++ 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 9c24256b51..4d8134b314 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -8681,3 +8681,32 @@ HRESULT WINAPI UploadPrinterDriverPackageW( LPCWSTR server, LPCWSTR path, LPCWST flags, hwnd, dst, dstlen); return E_NOTIMPL; } + +/***************************************************************************** + * PerfOpen [WINSPOOL.@] + */ +DWORD WINAPI PerfOpen(LPWSTR context) +{ + FIXME("%s: stub\n", debugstr_w(context)); + return ERROR_SUCCESS; +} + +/***************************************************************************** + * PerfClose [WINSPOOL.@] + */ +DWORD WINAPI PerfClose(void) +{ + FIXME("stub\n"); + return ERROR_SUCCESS; +} + +/***************************************************************************** + * PerfCollect [WINSPOOL.@] + */ +DWORD WINAPI PerfCollect(LPWSTR query, LPVOID *data, LPDWORD size, LPDWORD obj_count) +{ + FIXME("%s,%p,%p,%p: stub\n", debugstr_w(query), data, size, obj_count); + *size = 0; + *obj_count = 0; + return ERROR_SUCCESS; +} diff --git a/dlls/winspool.drv/winspool.drv.spec b/dlls/winspool.drv/winspool.drv.spec index 58dc60bcc9..a23ea2ced9 100644 --- a/dlls/winspool.drv/winspool.drv.spec +++ b/dlls/winspool.drv/winspool.drv.spec @@ -2,9 +2,9 @@ 101 stub -noname ClusterSplOpen 102 stub -noname ClusterSplClose 103 stub -noname ClusterSplIsAlive -104 stub PerfClose -105 stub PerfCollect -106 stub PerfOpen +104 stdcall PerfClose() +105 stdcall PerfCollect(wstr ptr ptr ptr) +106 stdcall PerfOpen(wstr) 201 stdcall GetDefaultPrinterA(ptr ptr) 202 stdcall SetDefaultPrinterA(str) 203 stdcall GetDefaultPrinterW(ptr ptr) diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 735d965366..9a76509983 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -3309,6 +3309,7 @@ StartType=3 ErrorControl=1 [SpoolerService] +AddReg=SpoolerServiceKeys Description="Loads files to memory for later printing" DisplayName="Print Spooler" ServiceBinary="%11%\spoolsv.exe" @@ -3317,6 +3318,12 @@ StartType=3 ErrorControl=1 LoadOrderGroup="SpoolerGroup" +[SpoolerServiceKeys] +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Library",,"winspool.drv" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Open",,"PerfOpen" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Close",,"PerfClose" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Collect",,"PerfCollect" + [TerminalServices] Description="Remote desktop access" DisplayName="Terminal Services" -- 2.17.1
On Wed, Jul 11, 2018 at 12:16:11PM +0800, Dmitry Timoshkov wrote:
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/winspool.drv/info.c | 29 +++++++++++++++++++++++++++++ dlls/winspool.drv/winspool.drv.spec | 6 +++--- loader/wine.inf.in | 7 +++++++ 3 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 9c24256b51..4d8134b314 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -8681,3 +8681,32 @@ HRESULT WINAPI UploadPrinterDriverPackageW( LPCWSTR server, LPCWSTR path, LPCWST flags, hwnd, dst, dstlen); return E_NOTIMPL; } + +/***************************************************************************** + * PerfOpen [WINSPOOL.@] + */ +DWORD WINAPI PerfOpen(LPWSTR context) +{ + FIXME("%s: stub\n", debugstr_w(context)); + return ERROR_SUCCESS; +} + +/***************************************************************************** + * PerfClose [WINSPOOL.@] + */ +DWORD WINAPI PerfClose(void) +{ + FIXME("stub\n"); + return ERROR_SUCCESS; +} + +/***************************************************************************** + * PerfCollect [WINSPOOL.@] + */ +DWORD WINAPI PerfCollect(LPWSTR query, LPVOID *data, LPDWORD size, LPDWORD obj_count) +{ + FIXME("%s,%p,%p,%p: stub\n", debugstr_w(query), data, size, obj_count);
A minor thing, but as I'm commenting already: could you add spaces after the commas in the format string?
+ *size = 0; + *obj_count = 0; + return ERROR_SUCCESS; +} diff --git a/dlls/winspool.drv/winspool.drv.spec b/dlls/winspool.drv/winspool.drv.spec index 58dc60bcc9..a23ea2ced9 100644 --- a/dlls/winspool.drv/winspool.drv.spec +++ b/dlls/winspool.drv/winspool.drv.spec @@ -2,9 +2,9 @@ 101 stub -noname ClusterSplOpen 102 stub -noname ClusterSplClose 103 stub -noname ClusterSplIsAlive -104 stub PerfClose -105 stub PerfCollect -106 stub PerfOpen +104 stdcall PerfClose() +105 stdcall PerfCollect(wstr ptr ptr ptr) +106 stdcall PerfOpen(wstr)
On my Windows 7 box these are 111-3, so I suspect we can drop the explicit ordinals here.
201 stdcall GetDefaultPrinterA(ptr ptr) 202 stdcall SetDefaultPrinterA(str) 203 stdcall GetDefaultPrinterW(ptr ptr) diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 735d965366..9a76509983 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -3309,6 +3309,7 @@ StartType=3 ErrorControl=1
[SpoolerService] +AddReg=SpoolerServiceKeys Description="Loads files to memory for later printing" DisplayName="Print Spooler" ServiceBinary="%11%\spoolsv.exe" @@ -3317,6 +3318,12 @@ StartType=3 ErrorControl=1 LoadOrderGroup="SpoolerGroup"
+[SpoolerServiceKeys] +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Library",,"winspool.drv" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Open",,"PerfOpen" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Close",,"PerfClose" +HKLM,"System\CurrentControlSet\Services\Spooler\Performance","Collect",,"PerfCollect" + [TerminalServices] Description="Remote desktop access" DisplayName="Terminal Services" -- 2.17.1
Huw Davies <huw(a)codeweavers.com> wrote:
+DWORD WINAPI PerfCollect(LPWSTR query, LPVOID *data, LPDWORD size, LPDWORD obj_count) +{ + FIXME("%s,%p,%p,%p: stub\n", debugstr_w(query), data, size, obj_count);
A minor thing, but as I'm commenting already: could you add spaces after the commas in the format string?
Personally I don't like the spaces beween args in the relay logs because they make the log noticibly larger in size. But since this looks like a common thing in this particular file I'll change this part.
-104 stub PerfClose -105 stub PerfCollect -106 stub PerfOpen +104 stdcall PerfClose() +105 stdcall PerfCollect(wstr ptr ptr ptr) +106 stdcall PerfOpen(wstr)
On my Windows 7 box these are 111-3, so I suspect we can drop the explicit ordinals here.
I'd prefer that change go in a separate patch to avoid any potential regressions that may cause. -- Dmitry.
On Thu, Jul 12, 2018 at 03:52:59PM +0800, Dmitry Timoshkov wrote:
Huw Davies <huw(a)codeweavers.com> wrote:
+DWORD WINAPI PerfCollect(LPWSTR query, LPVOID *data, LPDWORD size, LPDWORD obj_count) +{ + FIXME("%s,%p,%p,%p: stub\n", debugstr_w(query), data, size, obj_count);
A minor thing, but as I'm commenting already: could you add spaces after the commas in the format string?
Personally I don't like the spaces beween args in the relay logs because they make the log noticibly larger in size. But since this looks like a common thing in this particular file I'll change this part.
Thanks. I find it much easier to read and, hey, disk space is cheap these days ;-)
-104 stub PerfClose -105 stub PerfCollect -106 stub PerfOpen +104 stdcall PerfClose() +105 stdcall PerfCollect(wstr ptr ptr ptr) +106 stdcall PerfOpen(wstr)
On my Windows 7 box these are 111-3, so I suspect we can drop the explicit ordinals here.
I'd prefer that change go in a separate patch to avoid any potential regressions that may cause.
Difficult to see how it could cause a regression since they're currently stubs, but ok, I'll send a patch to do that. Huw.
participants (2)
-
Dmitry Timoshkov -
Huw Davies