[cifs-protocol] [REG:111120724281237] SMB2 ProcessId header field for SYNC messages.

Obaid Farooqi obaidf at microsoft.com
Fri Dec 9 13:33:43 MST 2011

Hi Chris:
I'll help you with this issue and will get back to you as soon as I have an answer.

Obaid Farooqi
Escalation Engineer | Microsoft

Exceeding your expectations is my highest priority.  If you would like to provide feedback on your case you may contact my manager at nkang at Microsoft dot com

-----Original Message-----
From: Christopher R. Hertel [mailto:crh at ubiqx.mn.org]
Sent: Tuesday, December 06, 2011 11:12 PM
To: Interoperability Documentation Help; cifs-protocol at samba.org
Subject: SMB2 ProcessId header field for SYNC messages.



The SYNC version of the SMB2 message header has a ProcessId field, which is described in [MS-SMB2] v20110920, section, pg30, as

ProcessId (4 bytes): The client-side identification of the process that
  issued the request. The client MUST set this field to 0xFEFF. The server
  MUST set this field to the ProcessId value received in the corresponding
  request, if any, or to 0 otherwise. The client MUST ignore this field on

That description, of course, makes no sense to me at all.  Sorry.

  * The field is 4 bytes, but 0xFEFF is two bytes.  Does the doc mean
    0x0000FEFF or 0xFEFF0000 or something else?

  * If the client "MUST" set the field to 0xFEFF, then the value is
    meaningless since it is always the same.  If it is always the same 
    value, then it cannot identify the process that issued the request.

  * If the server "MUST" set this field to the value in the corresponding
    request, then surely the client "MUST" be able to set the field to 
    something other than 0xFEFF.

  * When compsing the response, how could there not be a value in the
    corresponding request?  The only way I can imagine is that the request 
    was sent as an ASYNC request (no ProcessId field) and the server is 
    sending a SYNC response.  Is that even possible?

  * The description states that the client must ignore the field.
    Shouldn't the client use the value in the field to ensure that
    the result is sent to the correct client process?

Am I missing something in this description?  Hit me with the clue-bat.


Chris -)-----

Microsoft is committed to protecting your privacy.  Please read the Microsoft Privacy Statement for more information.The above is an email for a support case from Microsoft Corp.REPLY ALL TO THIS MESSAGE or INCLUDE casemail at microsoft.com IN YOUR REPLY if you want your response added to the case automatically. For technical assistance, please include the Support Engineer on the TO: line. Thank you.

More information about the cifs-protocol mailing list