/// <exception cref="System.IO.IOException"></exception>
		public virtual Ace[] GetSecurity()
		{
			Srvsvc.ShareInfo502 info502 = (Srvsvc.ShareInfo502)Info;
			if (info502.SecurityDescriptor != null)
			{
				SecurityDescriptor sd;
				sd = new SecurityDescriptor(info502.SecurityDescriptor, 0, info502.SdSize);
				return sd.Aces;
			}
			return null;
		}
		internal override int ReadDataWireFormat(byte[] buffer, int bufferIndex, int len)
		{
			int start = bufferIndex;
			if (ErrorCode != 0)
			{
				return 4;
			}
			try
			{
				SecurityDescriptor = new SecurityDescriptor();
				bufferIndex += SecurityDescriptor.Decode(buffer, bufferIndex, len);
			}
			catch (IOException ioe)
			{
				throw new RuntimeException(ioe.Message);
			}
			return bufferIndex - start;
		}