using System; using System.Collections.Generic; using System.Text; namespace DirectUSB.VirtualPackets { public class DirectoryListingPacket : VirtualPacket { #region Declarations public enum Attribute { VariableSize = 0x0001, VariableType = 0x0002, ArchivedStatus = 0x0003 }; #endregion #region Constructors / Teardown public DirectoryListingPacket(List attribs) : base(0x0009) { var data = new byte[4 + (attribs.Count * 2) + 7]; data[0] = 0x00; data[1] = 0x00; data[2] = (byte)(attribs.Count >> 8); data[3] = (byte)(attribs.Count & 0xFF); int i; for (i = 0; i < attribs.Count; i++) { data[4 + (i * 2) + 0] = (byte)((short)attribs[i] >> 8); data[4 + (i * 2) + 1] = (byte)((short)attribs[i] & 0xFF); } data[4 + (attribs.Count * 2) + 0] = 0x00; data[4 + (attribs.Count * 2) + 1] = 0x01; data[4 + (attribs.Count * 2) + 2] = 0x00; data[4 + (attribs.Count * 2) + 3] = 0x01; data[4 + (attribs.Count * 2) + 4] = 0x00; data[4 + (attribs.Count * 2) + 5] = 0x01; data[4 + (attribs.Count * 2) + 6] = 0x01; Data = data; } #endregion } }