none
[MS-TDS] Incorrect Version specification in a Pre-Login packet RRS feed

  • Question

  • Hi,

    From the documentation of the contents of a pre-login packet:
    UL_VERSION = ULONG     ; version of the sender  
                                        ; used for debugging purposes   
     
    US_SUBBUILD = USHORT ; sub-build number of the sender   
                                        ; used for debugging purposes   
     

    however it looks like the UL_VERSION is a USHORT - is this correct??

    thanks,


    ed
    Thursday, September 25, 2008 10:39 AM

Answers

  •  

    Hi Ed,

     

    With regards of the pre-login packet:

    We’ve concluded our investigation and the document is right specifying UL_VERSION = ULONG with the first byte representing the Major Version, the second one representing the Minor Version and the last two representing the Build Number.

     

    Please let me know if you need further clarification.

     

    With regards of the PacketID question:
     
    I have to tell you that the document is right.

     

    Talking with the developers they think that your confusion may be originated on the fact that a sqlbatch request spanning more than one packet would have the ALL_HEADER on packetid=1 and subsequent packets would have the streams.

     

    Please let me know if you need further assistance.

     

    Thanks!

     

    • Proposed as answer by Sebastian Canevari Tuesday, October 7, 2008 7:09 PM
    • Edited by Sebastian Canevari Tuesday, October 7, 2008 7:12 PM added answer for hte PacketID
    • Marked as answer by Ed-Elliott Friday, October 10, 2008 10:48 AM
    Tuesday, October 7, 2008 7:07 PM

All replies

  • Hi Ed_E_1,

    Thank you for your question.
    We'll let you know as soon as we finish our investigation or have questions for you.

    Thanks!

    SEBASTIAN CANEVARI - MSFT SEE Protocol Documentation Team
    Thursday, September 25, 2008 5:06 PM
  • Thanks Sebastian - also in a SqlBatch packet, the notes say that the PacketId is ignored.

    I don't think it is ignored, in fact it shows whether the packetData contains an ALL_HEADERS structure or just contains a unicode stream.

    1 = ALL_HEADERS which points to the start and length of the Unicode stream
    2 = No Header - Just the actual stream

    - if this is the case can you have a look and see if there are any other values which would mean something else??

    thanks,


    ed
    Friday, September 26, 2008 11:12 AM
  • Hi Ed,

    You are most welcome.

    I will take a look at the packetData values as well.

    Thanks!


    SEBASTIAN CANEVARI - MSFT SEE Protocol Documentation Team
    Friday, September 26, 2008 1:46 PM
  •  

    Hi Ed,

     

    With regards of the pre-login packet:

    We’ve concluded our investigation and the document is right specifying UL_VERSION = ULONG with the first byte representing the Major Version, the second one representing the Minor Version and the last two representing the Build Number.

     

    Please let me know if you need further clarification.

     

    With regards of the PacketID question:
     
    I have to tell you that the document is right.

     

    Talking with the developers they think that your confusion may be originated on the fact that a sqlbatch request spanning more than one packet would have the ALL_HEADER on packetid=1 and subsequent packets would have the streams.

     

    Please let me know if you need further assistance.

     

    Thanks!

     

    • Proposed as answer by Sebastian Canevari Tuesday, October 7, 2008 7:09 PM
    • Edited by Sebastian Canevari Tuesday, October 7, 2008 7:12 PM added answer for hte PacketID
    • Marked as answer by Ed-Elliott Friday, October 10, 2008 10:48 AM
    Tuesday, October 7, 2008 7:07 PM
  • Thanks Sebastian, so to clarify the first packet in a Sql Batch will always have an ALL_HEADERS and subsequent packets are just a continuation of the actual data?

    Cheers


    Ed
    Tuesday, October 7, 2008 8:24 PM
  • Hi Sebasitan, you were right - a transaction descriptor is required in a sql batch so the first packet in a stream must have an ALL_HEADERS.  so a sql batch with a packetid of 1 has an all headers and anything > 1 won't.

     

    ed

    Friday, October 10, 2008 10:50 AM