Author: tfaber
Date: Wed Jun 24 10:31:50 2015
New Revision: 68250
URL: http://svn.reactos.org/svn/reactos?rev=68250&view=rev
Log:
[USBCCGP]
- Reset FunctionDescriptorCount to zero in USBCCGP_LegacyEnum since the function can be called multiple times
CORE-9226
Modified:
trunk/reactos/drivers/usb/usbccgp/function.c
Modified: trunk/reactos/drivers/usb/usbccgp/function.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbccgp/functi…
==============================================================================
--- trunk/reactos/drivers/usb/usbccgp/function.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/usb/usbccgp/function.c [iso-8859-1] Wed Jun 24 10:31:50 2015
@@ -639,11 +639,7 @@
//
// init function descriptors
//
- if (FDODeviceExtension->FunctionDescriptorCount != 0)
- {
- DPRINT1("USBCCGP_LegacyEnum called with FunctionDescriptorCount=%lu. Adding another %lu descriptors will probably overflow\n", FDODeviceExtension->FunctionDescriptorCount, FDODeviceExtension->ConfigurationDescriptor->bNumInterfaces);
- ASSERT(FDODeviceExtension->FunctionDescriptorCount == 0);
- }
+ FDODeviceExtension->FunctionDescriptorCount = 0;
for (Index = 0; Index < FDODeviceExtension->ConfigurationDescriptor->bNumInterfaces; Index++)
{
// get interface descriptor
Author: cfinck
Date: Wed Jun 24 09:51:29 2015
New Revision: 68248
URL: http://svn.reactos.org/svn/reactos?rev=68248&view=rev
Log:
[SPOOLSV, WINSPOOL]
Local Communication between winspool.drv and spoolsv.exe happens using the ncalrpc protocol. The ncacn_np endpoint is only available when sharing a printer. It's then used for receiving a remote call from win32spl.dll.
Reference: http://www.hsc.fr/ressources/articles/win_net_srv/msrpc_spoolss.html
This fixes e.g. testing a _RpcOpenPrinter call from our winspool.drv to a local printer under Windows.
Modified:
branches/colins-printing-for-freedom/reactos/include/reactos/idl/winspool.idl
branches/colins-printing-for-freedom/reactos/win32ss/printing/base/spoolsv/rpcserver.c
branches/colins-printing-for-freedom/reactos/win32ss/printing/base/winspool/main.c
Modified: branches/colins-printing-for-freedom/reactos/include/reactos/idl/winspool.idl
URL: http://svn.reactos.org/svn/reactos/branches/colins-printing-for-freedom/rea…
==============================================================================
--- branches/colins-printing-for-freedom/reactos/include/reactos/idl/winspool.idl [iso-8859-1] (original)
+++ branches/colins-printing-for-freedom/reactos/include/reactos/idl/winspool.idl [iso-8859-1] Wed Jun 24 09:51:29 2015
@@ -841,7 +841,7 @@
[
uuid(12345678-1234-ABCD-EF00-0123456789AB),
version(1.0),
- endpoint("ncacn_np:[\\pipe\\spoolss]"),
+ endpoint("ncalrpc:[spoolss]", "ncacn_np:[\\pipe\\spoolss]"),
pointer_default(unique)
]
Modified: branches/colins-printing-for-freedom/reactos/win32ss/printing/base/spoolsv/rpcserver.c
URL: http://svn.reactos.org/svn/reactos/branches/colins-printing-for-freedom/rea…
==============================================================================
--- branches/colins-printing-for-freedom/reactos/win32ss/printing/base/spoolsv/rpcserver.c [iso-8859-1] (original)
+++ branches/colins-printing-for-freedom/reactos/win32ss/printing/base/spoolsv/rpcserver.c [iso-8859-1] Wed Jun 24 09:51:29 2015
@@ -8,11 +8,11 @@
#include "precomp.h"
DWORD WINAPI
-RpcThreadProc(LPVOID lpParameter)
+LrpcThreadProc(LPVOID lpParameter)
{
RPC_STATUS Status;
- Status = RpcServerUseProtseqEpW(L"ncacn_np", 20, L"\\pipe\\spoolss", NULL);
+ Status = RpcServerUseProtseqEpW(L"ncalrpc", 20, L"spoolss", NULL);
if (Status != RPC_S_OK)
{
ERR("RpcServerUseProtseqEpW failed with status %ld!\n", Status);
Modified: branches/colins-printing-for-freedom/reactos/win32ss/printing/base/winspool/main.c
URL: http://svn.reactos.org/svn/reactos/branches/colins-printing-for-freedom/rea…
==============================================================================
--- branches/colins-printing-for-freedom/reactos/win32ss/printing/base/winspool/main.c [iso-8859-1] (original)
+++ branches/colins-printing-for-freedom/reactos/win32ss/printing/base/winspool/main.c [iso-8859-1] Wed Jun 24 09:51:29 2015
@@ -15,7 +15,7 @@
RPC_STATUS Status;
// Get us a string binding handle from the supplied connection information
- Status = RpcStringBindingComposeW(NULL, L"ncacn_np", wszName, L"\\pipe\\spoolss", NULL, &wszStringBinding);
+ Status = RpcStringBindingComposeW(NULL, L"ncalrpc", wszName, L"spoolss", NULL, &wszStringBinding);
if (Status != RPC_S_OK)
{
ERR("RpcStringBindingComposeW failed with status %ld!\n", Status);
Author: tfaber
Date: Tue Jun 23 10:06:38 2015
New Revision: 68246
URL: http://svn.reactos.org/svn/reactos?rev=68246&view=rev
Log:
[ROSAUTOTEST]
- Flush cout after each write as already done by Colin in r66855, per ROSTESTS-158
- Use DbgPrint instead of OutputDebugStringA again because the latter only calls the former anyway
Fixes test summary lines not being recognized by Testman, especially on VMware.
A little summary so we don't keep going back and forth with this function:
1) Only writing complete lines is required to that the output doesn't mix with debug output from other components. See r55618
2) OutputDebugStringA splits its input into 512-byte-sized blocks with no regard for line breaks, so using it with strings larger than 512 bytes breaks (1).
3) OutputDebugStringA eventually calls DbgPrint("%s", string) anyway so using it with chunks smaller than 512 bytes is not an optimization
As a result, yes this function MUST split up the lines itself, this can't be optimized or simplified away! kthxbye
ROSTESTS-178 #resolve
Modified:
trunk/rostests/rosautotest/tools.cpp
Modified: trunk/rostests/rosautotest/tools.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/rosautotest/tools.cpp?rev…
==============================================================================
--- trunk/rostests/rosautotest/tools.cpp [iso-8859-1] (original)
+++ trunk/rostests/rosautotest/tools.cpp [iso-8859-1] Tue Jun 23 10:06:38 2015
@@ -2,7 +2,7 @@
* PROJECT: ReactOS Automatic Testing Utility
* LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation
* PURPOSE: Various helper functions
- * COPYRIGHT: Copyright 2008-2009 Colin Finck <colin(a)reactos.org>
+ * COPYRIGHT: Copyright 2008-2015 Colin Finck <colin(a)reactos.org>
*/
#include "precomp.h"
@@ -136,7 +136,7 @@
}
DbgString[size] = 0;
- OutputDebugStringA(DbgString);
+ DbgPrint("%s", DbgString);
}
last_newline = curr_pos;
@@ -150,11 +150,11 @@
{
/* Output the whole string */
if(Configuration.DoPrint())
- cout << NewString;
+ cout << NewString << flush;
memcpy(DbgString, NewString.c_str() + start, size);
DbgString[size] = 0;
- OutputDebugStringA(DbgString);
+ DbgPrint("%s", DbgString);
NewString.clear();
return NewString;
@@ -162,7 +162,7 @@
/* Output full lines only */
if(Configuration.DoPrint())
- cout << NewString.substr(0, start);
+ cout << NewString.substr(0, start) << flush;
/* Return the remaining chunk */
return NewString.substr(start, size);