Password for the file upload workspace:

        4mQ{08v]d#2Nay



-----Original Message-----
From: Bryan Burgin 
Sent: Wednesday, November 24, 2010 3:31 PM
To: 'Jeremy Allison'; '[email protected]'; '[email protected]'
Cc: MSSolve Case Email
Subject: RE: [REG:110112076424325]Problem communicating with SPOOLSS, invalid 
parameter.

Hi, Jeremy,

Sorry for the delay.  Seattle has been shut down with ice and snow.

In reviewing our code, I believe that spoolsv.exe contains the logic that adds 
a printer.  I attached both the x86 and x64 builds of the Time Travel Trace 
(TTT) utility (rename .m_s_i to .msi and execute).  TTT will capture debug 
information that will allow me to step through the code as if I had a debugger 
attached.

Can you capture a Time Travel Trace on your system?  If you have easy access to 
both x86 and x64, then x86 is preferable.

Once you install this package, it will install the tracer at c:\debuggers\ttt 
as tttracer.exe.  If you are doing this on a x86 box, you will have to run 
"tttracer -initialize" from an elevated Command Prompt once and reboot.  This 
step isn't required for x64.  Then do the following:

-- Run TASKLIST from a Command Prompt.  Record the Process ID (PID) for 
SPOOLSV.EXE.
-- from \debuggers\ttt, run "TTTRACER -attach <pid>".
-- TTTracer may complain that you are not using the current version.  Ignore 
this message; this is the latest version.
-- In 15-20 seconds, a small dialog box will appear indicating that TT Tracer 
is recording.
-- Repro your situation.
-- Stop TTTracer (a button on the dialog is provided).

Two files will be produced: spoolsv01.run and spoolsv.out.  Send both.  The 
files are likely to be large, so I created you a upload workspace at [...].  
I'll send you its password in separate mail.

The second technique we can use to debug this issue is to collect debug spew 
from the spooler code via ETW (Event Tracing for Windows).  ETW traces can be 
obtained via TraceLog (discussed here: 
http://msdn.microsoft.com/en-us/library/ff552994.aspx).  We will want to 
request traces for these providers (by GUID):

    C9BF4A9E-D547-4d11-8242-E03A18B5BE01
    C9BF4A9F-D547-4d11-8242-E03A18B5BE01
    C9BF4A01-D547-4d11-8242-E03A18B5BE01
    C9BF4A02-D547-4d11-8242-E03A18B5BE01
    C9BF4A03-D547-4d11-8242-E03A18B5BE01
    C9BF4A04-D547-4d11-8242-E03A18B5BE01
    C9BF4A05-D547-4d11-8242-E03A18B5BE01
    C9BF4A06-D547-4d11-8242-E03A18B5BE01
    C9BF4A07-D547-4d11-8242-E03A18B5BE01
    C9BF4A08-D547-4d11-8242-E03A18B5BE01
    C9BF4A09-D547-4d11-8242-E03A18B5BE01
    C9BF4A0A-D547-4d11-8242-E03A18B5BE01
    C9BF4A0B-D547-4d11-8242-E03A18B5BE01
    C9BF4A0C-D547-4d11-8242-E03A18B5BE01
    AEFE45F4-8548-42B4-B1C8-25673B07AD8B
    B795C7DF-07BC-4362-938E-E8ABD81A9A01

I attached the file spoolerguids.txt.  Following Trace Log\Examples\Example 14 
" Starting a Trace Session with Multiple Providers", you would:

-- Execute "tracelog -start addprinter -guid spoolerguids.txt -f addprinter.etl"
-- repro your scenario
-- Execute "tracelog -stop"

There should be a addprinter.etl file.  Send that.

I attached both the x86 and x64 builds of TraceLog.exe (rename as needed).

My goal is to reproduce this action here between a Windows 7 client and a 
Windows Server to verify all these steps, but that is going to be delayed 
because of the weather situation up here and the holiday.  So, I wanted to send 
you what I believe are the correct instructions now so that we can work in 
parallel.
 
Bryan





-----Original Message-----
From: Bryan Burgin 
Sent: Monday, November 22, 2010 4:10 PM
To: Jeremy Allison; [email protected]; [email protected]
Cc: MSSolve Case Email
Subject: [REG:110112076424325]Problem communicating with SPOOLSS, invalid 
parameter.

Jeremy,

I'm researching this for you.  I worked with Guenther on similar 
[MS-RPRN]questions during the Samba IO Lab, along with Nick and Tarun from 
Microsoft and the Product Group.

The two most detailed debugging techniques would be for me to collect ETW 
traces from you or Time Travel Traces (iDNA Traces).  Both would involve 
receiving logs from you and analyzing them here.  As for ETW traces, we would 
use TraceLog.  I'm reviewing the exact GUIDs you need to specify.  As for TT 
Traces, I will also send you the tool to capture the iDNA log.

Can you send me a screen shot showing me the "INVALID_PARAMETER error dialog 
box (0x00000057)"?

Bryan

-----Original Message-----
From: Jeremy Allison [mailto:[email protected]] 
Sent: Friday, November 19, 2010 4:28 PM
To: Interoperability Documentation Help; [email protected]; 
[email protected]
Cc: [email protected]
Subject: Problem communicating with SPOOLSS, invalid parameter.

Hi Dochelp,

Hongwei and Nick suggested I post this here,

I'm trying to track down an interoperability bug with Samba and the Windows 7 
print subsystem.

When doing "connect" to a remote printer from Windows 7 with our latest 
auto-generated PIDL code (git master branch) it downloads the printer driver, 
then fails with an INVALID_PARAMETER error dialog box (0x00000057).

Of course there is no such error in the wireshark trace, or in the Samba logs 
:-(.

The same code (master) doing the same thing to Windows XP
SP3 works perfectly, so my guess is it's some alignment or padding check that 
was tightened up for Win7.

Another data point - running Win7 against Samba 3.3.x (which uses the old 
hand-marshalled code) and connecting to the same printer works perfectly (one 
more data point making me think this is an alignment or padding we're getting 
wrong in the new PIDL-generated code).

Is there some registry setting or debug setting I can use to get SPOOLSS.EXE to 
tell me what call it's having problems with ? I searched on the 'net for a 
SPOOLSS equivalent to "debug log level"
but came up empty :-).

Thanks !

Jeremy.

_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to