private static int CalculateSize(ref Dot11BssidList list) { int ndisHeaderSize = Marshal.SizeOf(typeof(NdisObjectHeader)); int listHeaderSize = Marshal.SizeOf(typeof(Dot11BssidListHeader)); int macAddressSize = Marshal.SizeOf(typeof(Dot11MacAddress)); return(ndisHeaderSize + listHeaderSize + list.bssids.Length * macAddressSize); }
private Dot11MacAddress[] bssids; //dynamic array Dot11MacAddress[] public static Dot11BssidList Build(Dot11MacAddress[] bssids) { Dot11BssidList list = new Dot11BssidList(); int maxLength = CalculateMaxLength(); list.listHeader.TotalNumOfEntries = (ushort)maxLength; list.header = NdisObjectHeader.CreateDefault(); list.Entries = bssids; return(list); }