none
Text in section 2.11.1 of the MS-OXCDATA document needs to be corrected. RRS feed

  • General discussion

  • Section "2.11.1 Property Data Types" of the document MS-OXCDATA states the following:

    There is one variation in the width of count fields. In the context of ROP buffers, such as the RopGetPropertiesSpecific ROP ([MS-OXCROPS] section 2.2.8.3), byte counts for PtypBinary property values and value counts for all PtypMultiple property values are 16 bits wide. However, in the context of extended rules, as specified in [MS-OXORULE] section 2.2.4, byte counts for PtypBinary property values and value counts for PtypMultiple property values are 32 bits wide, and in the context of the MAPI extensions for HTTP, as specified in [MS-OXCMAPIHTTP], byte counts for PtypBinary property values are 32 bits wide. Such count fields have a width designation of COUNT, as specified in section 2.11.1.1, rather than an explicit width, as throughout section 2.11.

    I am writing a MAPI/HTTP library for submitting MAPI/HTTP requests to Exchange, and through trial and error (and with the help of the Office Inspectors for Fiddler project in GitHub), I've discovered that contrary to what is stated in the documentation, the VALUE COUNT field for multi-value properties with MAPI/HTTP is in fact 32 bits, not 16 bits.

    The text in the documentation does state that value counts for extended rules are 32 bits wide, but for MAPI/HTTP, it does not include value counts. It only indicates that counts for binary property values are 32 bits wide.

    Please correct the document to make it clear that value counts are 32 bits wide for both extended rules AND the MAPI/HTTP protocol. For example:

    "However, in the context of extended rules, as specified in [MS-OXORULE] section 2.2.4, and in the context of the MAPI extensions for HTTP, as specified in [MS-OXCMAPIHTTP], byte counts for PtypBinary property values and value counts for PtypMultiple property values are 32 bits wide, byte counts for PtypBinary property values are 32 bits wide."

    Thursday, February 7, 2019 2:48 PM

All replies

  • Hi Bill,

    Thank you for your question.  An engineer from the protocols team will contact you soon.


    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Thursday, February 7, 2019 6:35 PM
    Moderator
  • Hi Bill,

    Thank you for bringing this to our attention. I've verified in our code and it looks like this is correct. I will submit this as a bug against [MS-OXCDATA] 2.11.1 to clarify that the count fields for MAPIHTTP will be read as 32 bit width.

    I'll consider this issue as resolved for now. 

    Best regards,
    Tom Jebo
    Sr Escalation Engineer
    Microsoft Open Specifications

    Friday, February 8, 2019 12:41 AM
    Moderator
  • FYI,

    The error in the text is a little different than what I thought. As previously stated, the text currently reads "in the context of the MAPI extensions for HTTP, as specified in [MS-OXCMAPIHTTP], byte counts for PtypBinary property values are 32 bits wide."

    I believe that the word PtypBinary in that quote was supposed to have been PtypMultiple. I've confirmed that not only are PtypMultiple counts 32 bits, not 16 bits, but PtypBinary counts are actually 16 bits, not 32 bits as stated in the text.

    So by using the wrong word in the text, it actually got the size wrong for BOTH types; PtypBinary and PtypMultiple.

    Thursday, April 18, 2019 4:12 AM
  • Hi Bill, 

    Thanks for the follow-up. I need to review this because I think you're right that there is some confusion. I will get back to you here after I've sorted it out.

    Best regards,
    Tom Jebo
    Sr Escalation Engineer
    Microsoft Open Specifications

    Thursday, April 18, 2019 7:22 PM
    Moderator
  • Hey Bill, 

    Can you please email us at dochelp at microsoft dot com? Please reference the URL for this thread and my name. I would like to collect a trace from you on this and discuss. We're seeing some conflicting observations and would like to clear it up. 

    Best regards,
    Tom Jebo
    Sr Escalation Engineer
    Microsoft Open Specifications


    Friday, May 3, 2019 2:29 AM
    Moderator
  • Hi Bill, 

    To follow up on this after discussion with the Exchange MAPI team, the current paragraph is still not completely correct as you have suggested. However, it's not exactly as simple as that. In spite of this, the following description is a rough draft of [MS-OXCDATA] 2.11.1 that captures the sense of the state of the variance that is used for PtypeBinary and PtypeMultiple for [MS-OXCDATA], [MS-OXORULE] and [MS-OXCMAPIHTTP]: 

    There is one variation in the width of count fields. In the context of ROP buffers, such as the RopGetPropertiesSpecific ROP ([MS-OXCROPS] section 2.2.8.3), byte counts for PtypBinary property values are 16 bits wide and value counts for all PtypMultiple property values are 32 bits wide. However, in the context of extended rules, as specified in [MS-OXORULE] section 2.2.4 and in the context of the MAPI extensions for HTTP, as specified in [MS-OXCMAPIHTTP] Section 2.2.5, byte counts for PtypBinary property values and value counts for PtypMultiple property values are 32 bits wide.  Such count fields have a width designation of COUNT, as specified in section 2.11.1.1, rather than an explicit width, as throughout section 2.11.

    Notice in particular the fact that the variance in how PtypBinary and PtypMultiple are handled for [MS-OXCMAPIHTTP] is only for Request Types for Address Book Server Endpoint described in Section 2.2.5, not for ROP buffers in Execute Request Type in Section 2.2.4.2

    I hope this helps to clarify. We will be updating the text in [MS-OXCDATA] 2.11.1.

    Thanks,

    Tom

    Thursday, May 16, 2019 4:02 PM
    Moderator