Bryan,

Thanks for your follow-up on this. The ProcessExit is an obscure command, one that was listed as obsolete in OS/2 LAN Manager documentation. Unfortunately, Windows supports it without discriminating based on dialect version, so it still "works" in modern Windows systems. Its behavior is a little odd, because it is designed for DOS process semantics.

Good to see you last week.  Thanks again.

Chris -)-----

On 03/02/2012 09:21 AM, Bryan Burgin wrote:
Chris,

TDI 66246 filed.
Thank you for reporting this.

Bryan

-----Original Message-----
From: Bryan Burgin
Sent: Friday, March 02, 2012 8:51 AM
To: Christopher R. Hertel; [email protected]; [email protected]
Cc: MSSolve Case Email
Subject: [REG:112030256125953] [MS-CIFS] PendingRequestTable issues.


[dochelp to bcc]
[adding casemail and case number]

Hi Chris.

We created SR 112030256125953 to track this.  My intention is to file this as a 
TDI and then close this issue, as you are providing feedback.  Please let me 
know if you concur.

Bryan

-----Original Message-----
From: Josh Curry
Sent: Friday, March 02, 2012 7:34 AM
To: Christopher R. Hertel; Interoperability Documentation Help; 
[email protected]; [email protected]
Subject: RE: [MS-CIFS] PendingRequestTable issues.

Hi Christopher, thank you for your question. A member of the protocol 
documentation team will be in touch with you soon.

Josh Curry | Escalation Engineer | Open Specifications Support Team P +1 469 
775 7215 One Microsoft Way, 98052, Redmond, WA, USA http://support.microsoft.com


-----Original Message-----
From: Christopher R. Hertel [mailto:[email protected]]
Sent: Thursday, March 01, 2012 3:37 PM
To: Interoperability Documentation Help; [email protected]; 
[email protected]
Subject: Re: [MS-CIFS] PendingRequestTable issues.

[Resending the message below due to a typo in the address.]

Dochelp,

In section 3.3.5.20 of [MS-CIFS] (Receiving an SMB_COM_PROCESS_EXIT Request), 
there is the following statement:

    The server MUST search the Server.Connection.PendingRequestTable for
    any pending commands that have the same UID, TID, PID, and MID as
    presented in the request. If the SMB transport is connectionless,
    the header SID value SHOULD<264>  also be used. For each matching
    entry, the server MUST abort the pending operation. The client
    process that made the aborted command request no longer exists to
    receive the response.

There are two problems with the above statement.

1) For connectionless transports, you would use the CID value.  The
     CID is the Connection ID, used to identify a connection context
     over a connectionless transport.  The SID is a search ID.

2) The server must search the Server.Connection.PendingRequestTable
     for *all* pending requests under the same PID.  It is the PID
     that is being closed.  If you only look for those matching all
     of [PID, MID, UID, TID], as presented in the Exit request, you
     have the following problems:
     * There is no SID value presented in the SMB_COM_PROCESS_EXIT,
       but there is a CID in the header.  More evidence that you
       want CID not SID.
     * No UID or TID are presented in the SMB_COM_PROCESS_EXIT
       request, so you *cannot* match on those fields.
     * The SMB_COM_PROCESS_EXIT is specific to a process, not a
       MID within a process.  A single process may use several MIDs
       to identify threads within the process.

     So, above should read:


    The server MUST search the Server.Connection.PendingRequestTable for
    any pending commands that have the same PID as presented in the
    request header. If the SMB transport is connectionless, the header
    CID value SHOULD<264>  also be used. For each matching entry, the
    server MUST abort the pending operation. The client process that
    made the aborted command request no longer exists to receive the
    response to the pending operations.

Please note that the SID->CID change also impacts Windows Behavior Note<264>, 
which should read:

    <264>  Section 3.3.5.20: Windows NT Server 4.0 does not use the CID
    as a lookup key. The list of pending requests is associated with
    the SMB transport, so the effect is the same.

(That is, SID should be CID in that note.  The note is otherwise correct.)

Chris -)-----

--
"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   [email protected]
OnLineBook -- http://ubiqx.org/cifs/    -)-----   [email protected]




--
"Implementing CIFS - the Common Internet FileSystem" ISBN: 013047116X
Samba Team -- http://www.samba.org/     -)-----   Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/   -)-----   ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/     -)-----   [email protected]
OnLineBook -- http://ubiqx.org/cifs/    -)-----   [email protected]
_______________________________________________
cifs-protocol mailing list
[email protected]
https://lists.samba.org/mailman/listinfo/cifs-protocol

Reply via email to