On Mon, Mar 25, 2013 at 11:08 AM, Guy Harris <g...@alum.mit.edu> wrote:
>> #pragma pack(1)
>> typedef struct
>> {
>>     USHORT       headerLen; /* This header length */
>>     UINT64       irpId;     /* I/O Request packet ID */
>
> So headerLen is at an offset of 0, and irpId is at an offset of 2, right?

Exactly.

>>       o irpId is merely a pointer to IRP casted to the UINT64
> I.e., it's an 64-bit cookie whose bits have no particular significance, given 
> that, within a file, there's nothing for it to point to.

Yes. It is provided so it could be used to pair the requests with
responses in analysis software.

>>       o transfer determines the transfer type and thus the header type. See 
>> below for details.
>>       o dataLength specifies the total length of transfer data to follow 
>> directly after the header.
>> Transfer-specific headers
>
> Presumably the "transfer-specific header" follows the 
> USBPCAP_BUFFER_PACKET_HEADER in the packet data, with the transfer data 
> following the transfer-specific header.

Actually, all transfer-specific headers inherit the base packet header.

But yes, first there is the USBPCAP_BUFFER_PACKET_HEADER, then (if
any) the transfer-specific header members not contained in
USBPCAP_BUFFER_PACKET_HEADER, and then the transfer data.
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to