/// <summary>
 /// Method to query information for a message.
 /// </summary>
 /// <param name="info_class">The information class.</param>
 /// <param name="port">The port which has processed the message.</param>
 /// <param name="buffer">The buffer to return data in.</param>
 /// <param name="return_length">Return length from the query.</param>
 /// <returns>The NT status code for the query.</returns>
 public NtStatus QueryInformation(NtAlpc port, AlpcMessageInformationClass info_class,
                                  SafeBuffer buffer, out int return_length)
 {
     if (_port == null)
     {
         throw new ArgumentNullException("Message must be associated with a port");
     }
     return(NtSystemCalls.NtAlpcQueryInformationMessage(port.Handle, Header,
                                                        info_class, buffer, buffer.GetLength(), out return_length));
 }