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

Obaid Farooqi obaidf at microsoft.com
Sat Dec 24 15:49:06 MST 2011


Hi Chris:
Section "3.2.5.1.1 Finding the Application Request for This Response" of MS-SMB2 describes how the client associates a response to an outstanding request. 
http://msdn.microsoft.com/en-us/library/cc246674(v=PROT.13).aspx

Please let me know if you need more details in this respect.

Regards,
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 allisong at microsoft.com


-----Original Message-----
From: Christopher R. Hertel [mailto:crh at ubiqx.mn.org] 
Sent: Friday, December 23, 2011 3:11 PM
To: Obaid Farooqi
Cc: MSSolve Case Email; 'cifs-protocol at samba.org'
Subject: Re: [REG:111120724281237] [cifs-protocol] SMB2 ProcessId header field for SYNC messages.

Obaid,

I guess I am surprised by the answer.  In the SMB1 protocol (which I know too well), the PID (Process ID) is used to demux responses from the server and return the result to the correct client process.  Do I understand correctly, then, that ProcessID is not used in SMB2 as a method for mapping responses to the correct client process?  I am sure it's listed in the documentation, but can you quickly tell me how Windows systems ensure that responses get to the correct client process and thread?

Thanks.

Chris -)-----

Obaid Farooqi wrote:
> Hi Chris:
> We have finished our investigation on the question of ProcessID in smb2 header.
> 
> In a future release of MS-SMB2, in section "2.2.1.2 SMB2 Packet Header - SYNC", ProcessId will be replaced by "Reserved". In all other sections, all references to "ProcessId" will be removed.
> 
> Please let me know if it does not answer your question.
> 
> Regards,
> 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 
> allisong at microsoft.com
> 
> -----Original Message-----
> From: Obaid Farooqi
> Sent: Monday, December 12, 2011 1:57 PM
> To: Christopher R. Hertel
> Cc: MSSolve Case Email; cifs-protocol at samba.org; Bryan Burgin
> Subject: RE:[REG:111120724281237] [cifs-protocol] SMB2 ProcessId header field for SYNC messages.
> 
> Hi Chris:
> Thanks for pointing that out. 
> 
> 
> Regards,
> 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: Monday, December 12, 2011 1:21 PM
> To: Obaid Farooqi
> Cc: MSSolve Case Email; cifs-protocol at samba.org; Bryan Burgin
> Subject: Re: [cifs-protocol] [REG:111120724281237] SMB2 ProcessId header field for SYNC messages.
> 
> Obaid,
> 
> Thanks.  I will note that the paragraph in question is also present in the [SMB2-Preview] document that includes SMB2.2.
> 
> Looking forward to your response!
> 
> Chris -)-----
> 
> Obaid Farooqi wrote:
>> Hi Chris:
>> I'll help you with this issue and will get back to you as soon as I have an answer.
>>
>> Regards,
>> 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.
>>
>> Dochelp,
>>
>> Hi.
>>
>> The SYNC version of the SMB2 message header has a ProcessId field, 
>> which is described in [MS-SMB2] v20110920, section 2.2.1.2, pg30, as
>> follows:
>>
>>
>> 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
>>   receipt.
>>
>>
>> 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.
>>
>> Thanks.
>>
>> 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.
>>
>> _______________________________________________
>> cifs-protocol mailing list
>> cifs-protocol at cifs.org
>> https://lists.samba.org/mailman/listinfo/cifs-protocol
> 
> --
> "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/     -)-----   crh at ubiqx.mn.org
> OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org
> 
> 

--
"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/     -)-----   crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/    -)-----   crh at ubiqx.org




More information about the cifs-protocol mailing list