none
MS-ONESTORE: Sometimes FileDataStoreObject has incorrect footer. RRS feed

  • Question

  • Hi All,

    I have covered the parsing code by unit tests and i have found an issue. According to MS-ONESTORE doc the FileDataStoreObject structure must have a guidFooter equal to {71FBA722-0F79-4A0B-BB13-899256426B24}, unfortunately sometimes it is not true.

    Guid header = this.ReadGuid(); \\OK,  {BDE316E7-2665-4511-A4C4-8D4D0B7A9EAC}
    ulong cbLength = this.ReadUInt64(); 
    uint unused = this.ReadUInt32(); //0K, 0
    ulong reserved = this.ReadUInt64();  //0K, 0
    byte[] fileData = this.ReadBytes(cbLength); \\Ok, The file is ok, because the size of file absolutely equal to the size of original file.
    Guid footer = this.ReadGuid(); \\Somtimes it is not Ok

    Could you please explain why? or did I miss something in a doc?


    Wednesday, May 14, 2014 9:47 AM

Answers

  • Hi Sergey, It looks like the fileData is aligned to 8-byte boundaries and filled with zeroes. If you modify your code to verify that the address of the footer GUID starts on an 8-byte boundary (0x0 or 0x8), and if not, start reading from the next 8-byte boundary address that does, I think you'll see that you get the correct value for the footer GUID. This is not mentioned anywhere in the documentation. I will file a request to have it added.

     

    Please let me know if you have any other questions.


    Josh Curry (jcurry) | Escalation Engineer | Open Specifications Support Team

    Monday, May 19, 2014 9:03 PM
    Moderator

All replies

  • Hi Sergey,

    Thank you for your question. A member of the Protocol Documentation support team will respond to you soon.

    Regards,
    Vilmos Foltenyi - MSFT

    Wednesday, May 14, 2014 5:27 PM
  • Hi Sergey, I am the engineer who will be working with you on this issue. I am currently researching the problem and will provide you with an update soon. Thank you for your patience.

    Josh Curry (jcurry) | Escalation Engineer | Open Specifications Support Team

    Wednesday, May 14, 2014 6:27 PM
    Moderator
  • Hi Sergey, I have not been able to reproduce or locate a file that contains a different guidFooter value other than the one in the documentation. Would you be able to send me a file that contains that if possible? You can send that to me at dochelp(at)microsoft(dot)com and reference this thread.

    Josh Curry (jcurry) | Escalation Engineer | Open Specifications Support Team

    Thursday, May 15, 2014 5:14 PM
    Moderator
  • Hi Josh, Thank you for replay. I have sent the file for check.
    Thursday, May 15, 2014 9:46 PM
  • Hi Sergey, It looks like the fileData is aligned to 8-byte boundaries and filled with zeroes. If you modify your code to verify that the address of the footer GUID starts on an 8-byte boundary (0x0 or 0x8), and if not, start reading from the next 8-byte boundary address that does, I think you'll see that you get the correct value for the footer GUID. This is not mentioned anywhere in the documentation. I will file a request to have it added.

     

    Please let me know if you have any other questions.


    Josh Curry (jcurry) | Escalation Engineer | Open Specifications Support Team

    Monday, May 19, 2014 9:03 PM
    Moderator
  • Hi Josh, Thank you for help. It works!
    Thursday, May 22, 2014 1:36 PM