/// <summary>
        /// Create a RpceCoAuth3Pdu.
        /// </summary>
        /// <returns>
        /// Created RpceCoAuth3Pdu, it's ok to be sent out if there's 
        /// no modification to any field of the PDU.
        /// </returns>
        public RpceCoAuth3Pdu CreateCoAuth3Pdu()
        {
            RpceCoAuth3Pdu auth3Pdu = new RpceCoAuth3Pdu(context);

            auth3Pdu.rpc_vers = context.RpcVersionMajor;
            auth3Pdu.rpc_vers_minor = context.RpcVersionMinor;
            auth3Pdu.PTYPE = RpcePacketType.Auth3;
            auth3Pdu.pfc_flags = RpceUtility.GeneratePfcFlags(context, RpcePacketType.Auth3);
            auth3Pdu.packed_drep.dataRepFormat = context.PackedDataRepresentationFormat;
            auth3Pdu.packed_drep.reserved = 0;
            auth3Pdu.call_id = ComputeNextCallId();

            auth3Pdu.pad = 0;

            auth3Pdu.AppendAuthenticationVerifier();
            auth3Pdu.SetLength();

            return auth3Pdu;
        }