[cifs-protocol] SMB2 ProcessId header field for SYNC messages.
bburgin at microsoft.com
Tue Dec 6 22:52:57 MST 2011
Thank you for your question. Someone from the team will contact you soon.
Our call tacking system is experiencing problems right now; I'll have a case number for tracking tomorrow.
From: Christopher R. Hertel [mailto:crh at ubiqx.mn.org]
Sent: Tuesday, December 06, 2011 9: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 22.214.171.124, 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.
More information about the cifs-protocol