//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// Source Executable: c:\windows\system32\dhcpcore6.dll
// Interface ID: 3c4728c5-f0ab-448b-bda1-6ce01eb0a6d6
// Interface Version: 1.0



namespace rpc_3c4728c5_f0ab_448b_bda1_6ce01eb0a6d6_1_0
{
    
    #region Marshal Helpers
    internal class _Marshal_Helper : NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer
    {
        public void Write_0(Struct_0 p0)
        {
            WriteStruct<Struct_0>(p0);
        }
        public void Write_1(Struct_1 p0)
        {
            WriteStruct<Struct_1>(p0);
        }
        public void Write_2(Struct_2 p0)
        {
            WriteStruct<Struct_2>(p0);
        }
        public void Write_3(Struct_3 p0)
        {
            WriteStruct<Struct_3>(p0);
        }
        public void Write_4(Struct_4 p0)
        {
            WriteStruct<Struct_4>(p0);
        }
        public void Write_5(Struct_5 p0)
        {
            WriteStruct<Struct_5>(p0);
        }
        public void Write_6(Struct_6 p0)
        {
            WriteStruct<Struct_6>(p0);
        }
        public void Write_7(Struct_7 p0)
        {
            WriteStruct<Struct_7>(p0);
        }
        public void Write_8(Struct_8 p0)
        {
            WriteStruct<Struct_8>(p0);
        }
        public void Write_9(Struct_9 p0)
        {
            WriteStruct<Struct_9>(p0);
        }
        public void Write_10(Struct_10 p0)
        {
            WriteStruct<Struct_10>(p0);
        }
        public void Write_11(Struct_11 p0)
        {
            WriteStruct<Struct_11>(p0);
        }
        public void Write_12(Struct_12 p0)
        {
            WriteStruct<Struct_12>(p0);
        }
        public void Write_13(Struct_13 p0)
        {
            WriteStruct<Struct_13>(p0);
        }
        public void Write_14(Struct_14 p0)
        {
            WriteStruct<Struct_14>(p0);
        }
        public void Write_15(Struct_15 p0)
        {
            WriteStruct<Struct_15>(p0);
        }
        public void Write_16(Struct_16 p0)
        {
            WriteStruct<Struct_16>(p0);
        }
        public void Write_17(Struct_17 p0)
        {
            WriteStruct<Struct_17>(p0);
        }
        public void Write_18(sbyte[] p0, long p1)
        {
            WriteConformantArray<sbyte>(p0, p1);
        }
        public void Write_19(Struct_3[] p0, long p1)
        {
            WriteConformantStructArray<Struct_3>(p0, p1);
        }
        public void Write_20(sbyte[] p0)
        {
            WriteFixedPrimitiveArray<sbyte>(p0, 16);
        }
        public void Write_21(sbyte[] p0, long p1)
        {
            WriteConformantArray<sbyte>(p0, p1);
        }
        public void Write_22(short[] p0, long p1)
        {
            WriteConformantArray<short>(p0, p1);
        }
        public void Write_23(sbyte[] p0, long p1)
        {
            WriteConformantArray<sbyte>(p0, p1);
        }
        public void Write_24(Struct_10[] p0)
        {
            WriteFixedStructArray<Struct_10>(p0, 2);
        }
        public void Write_25(sbyte[] p0)
        {
            WriteFixedPrimitiveArray<sbyte>(p0, 16);
        }
        public void Write_26(sbyte[] p0, long p1)
        {
            WriteConformantArray<sbyte>(p0, p1);
        }
        public void Write_27(string[] p0, long p1)
        {
            WriteConformantStringArray(p0, new System.Action<string>(this.WriteTerminatedAnsiString), p1);
        }
        public void Write_28(Struct_11[] p0, long p1)
        {
            WriteConformantStructArray<Struct_11>(p0, p1);
        }
        public void Write_29(Struct_15[] p0, long p1)
        {
            WriteConformantStructArray<Struct_15>(p0, p1);
        }
        public void Write_30(sbyte[] p0)
        {
            WriteFixedPrimitiveArray<sbyte>(p0, 24);
        }
        public void Write_31(sbyte[] p0)
        {
            WriteFixedPrimitiveArray<sbyte>(p0, 196);
        }
        public void Write_32(Struct_17[] p0, long p1)
        {
            WriteConformantStructArray<Struct_17>(p0, p1);
        }
    }
    internal class _Unmarshal_Helper : NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer
    {
        public _Unmarshal_Helper(NtApiDotNet.Win32.Rpc.RpcClientResponse r) : 
                base(r.NdrBuffer, r.Handles, r.DataRepresentation)
        {
        }
        public _Unmarshal_Helper(byte[] ba) : 
                base(ba)
        {
        }
        public Struct_0 Read_0()
        {
            return ReadStruct<Struct_0>();
        }
        public Struct_1 Read_1()
        {
            return ReadStruct<Struct_1>();
        }
        public Struct_2 Read_2()
        {
            return ReadStruct<Struct_2>();
        }
        public Struct_3 Read_3()
        {
            return ReadStruct<Struct_3>();
        }
        public Struct_4 Read_4()
        {
            return ReadStruct<Struct_4>();
        }
        public Struct_5 Read_5()
        {
            return ReadStruct<Struct_5>();
        }
        public Struct_6 Read_6()
        {
            return ReadStruct<Struct_6>();
        }
        public Struct_7 Read_7()
        {
            return ReadStruct<Struct_7>();
        }
        public Struct_8 Read_8()
        {
            return ReadStruct<Struct_8>();
        }
        public Struct_9 Read_9()
        {
            return ReadStruct<Struct_9>();
        }
        public Struct_10 Read_10()
        {
            return ReadStruct<Struct_10>();
        }
        public Struct_11 Read_11()
        {
            return ReadStruct<Struct_11>();
        }
        public Struct_12 Read_12()
        {
            return ReadStruct<Struct_12>();
        }
        public Struct_13 Read_13()
        {
            return ReadStruct<Struct_13>();
        }
        public Struct_14 Read_14()
        {
            return ReadStruct<Struct_14>();
        }
        public Struct_15 Read_15()
        {
            return ReadStruct<Struct_15>();
        }
        public Struct_16 Read_16()
        {
            return ReadStruct<Struct_16>();
        }
        public Struct_17 Read_17()
        {
            return ReadStruct<Struct_17>();
        }
        public sbyte[] Read_18()
        {
            return ReadConformantArray<sbyte>();
        }
        public Struct_3[] Read_19()
        {
            return ReadConformantStructArray<Struct_3>();
        }
        public sbyte[] Read_20()
        {
            return ReadFixedPrimitiveArray<sbyte>(16);
        }
        public sbyte[] Read_21()
        {
            return ReadConformantArray<sbyte>();
        }
        public short[] Read_22()
        {
            return ReadConformantArray<short>();
        }
        public sbyte[] Read_23()
        {
            return ReadConformantArray<sbyte>();
        }
        public Struct_10[] Read_24()
        {
            return ReadFixedStructArray<Struct_10>(2);
        }
        public sbyte[] Read_25()
        {
            return ReadFixedPrimitiveArray<sbyte>(16);
        }
        public sbyte[] Read_26()
        {
            return ReadConformantArray<sbyte>();
        }
        public string[] Read_27()
        {
            return ReadConformantStringArray(new System.Func<string>(this.ReadConformantVaryingAnsiString));
        }
        public Struct_11[] Read_28()
        {
            return ReadConformantStructArray<Struct_11>();
        }
        public Struct_15[] Read_29()
        {
            return ReadConformantStructArray<Struct_15>();
        }
        public sbyte[] Read_30()
        {
            return ReadFixedPrimitiveArray<sbyte>(24);
        }
        public sbyte[] Read_31()
        {
            return ReadFixedPrimitiveArray<sbyte>(196);
        }
        public Struct_17[] Read_32()
        {
            return ReadConformantStructArray<Struct_17>();
        }
    }
    #endregion
    #region Complex Types
    public struct Struct_0 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt64(Member0);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt64();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 8;
        }
        public long Member0;
        public static Struct_0 CreateDefault()
        {
            return new Struct_0();
        }
        public Struct_0(long Member0)
        {
            this.Member0 = Member0;
        }
    }
    public struct Struct_1 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteEmbeddedPointer<sbyte[], long>(Member8, new System.Action<sbyte[], long>(m.Write_18), Member10);
            m.WriteInt32(Member10);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member8 = u.ReadEmbeddedPointer<sbyte[]>(new System.Func<sbyte[]>(u.Read_18), false);
            Member10 = u.ReadInt32();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<sbyte[]> Member8;
        public int Member10;
        public static Struct_1 CreateDefault()
        {
            return new Struct_1();
        }
        public Struct_1(int Member0, sbyte[] Member8, int Member10)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
            this.Member10 = Member10;
        }
    }
    public struct Struct_2 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteInt32(Member4);
            m.WriteInt32(Member8);
            m.WriteInt32(MemberC);
            m.WriteInt32(Member10);
            m.WriteEmbeddedPointer<Struct_3[], long>(Member18, new System.Action<Struct_3[], long>(m.Write_19), Member10);
            m.WriteInt32(Member20);
            m.WriteInt32(Member24);
            m.WriteEnum16(Member28);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member4 = u.ReadInt32();
            Member8 = u.ReadInt32();
            MemberC = u.ReadInt32();
            Member10 = u.ReadInt32();
            Member18 = u.ReadEmbeddedPointer<Struct_3[]>(new System.Func<Struct_3[]>(u.Read_19), false);
            Member20 = u.ReadInt32();
            Member24 = u.ReadInt32();
            Member28 = u.ReadEnum16();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public int Member4;
        public int Member8;
        public int MemberC;
        public int Member10;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_3[]> Member18;
        public int Member20;
        public int Member24;
        public NtApiDotNet.Ndr.Marshal.NdrEnum16 Member28;
        public static Struct_2 CreateDefault()
        {
            return new Struct_2();
        }
        public Struct_2(int Member0, int Member4, int Member8, int MemberC, int Member10, Struct_3[] Member18, int Member20, int Member24, NtApiDotNet.Ndr.Marshal.NdrEnum16 Member28)
        {
            this.Member0 = Member0;
            this.Member4 = Member4;
            this.Member8 = Member8;
            this.MemberC = MemberC;
            this.Member10 = Member10;
            this.Member18 = Member18;
            this.Member20 = Member20;
            this.Member24 = Member24;
            this.Member28 = Member28;
        }
    }
    public struct Struct_3 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.Write_20(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(Member0, "Member0"));
            m.WriteInt32(Member10);
            m.WriteInt32(Member14);
            m.WriteInt32(Member18);
            m.WriteEnum16(Member1C);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.Read_20();
            Member10 = u.ReadInt32();
            Member14 = u.ReadInt32();
            Member18 = u.ReadInt32();
            Member1C = u.ReadEnum16();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public sbyte[] Member0;
        public int Member10;
        public int Member14;
        public int Member18;
        public NtApiDotNet.Ndr.Marshal.NdrEnum16 Member1C;
        public static Struct_3 CreateDefault()
        {
            Struct_3 ret = new Struct_3();
            ret.Member0 = new sbyte[16];
            return ret;
        }
        public Struct_3(sbyte[] Member0, int Member10, int Member14, int Member18, NtApiDotNet.Ndr.Marshal.NdrEnum16 Member1C)
        {
            this.Member0 = Member0;
            this.Member10 = Member10;
            this.Member14 = Member14;
            this.Member18 = Member18;
            this.Member1C = Member1C;
        }
    }
    public struct Struct_4 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt16(Member0);
            m.WriteEmbeddedPointer<sbyte[], long>(Member8, new System.Action<sbyte[], long>(m.Write_21), Member0);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt16();
            Member8 = u.ReadEmbeddedPointer<sbyte[]>(new System.Func<sbyte[]>(u.Read_21), false);
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public short Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<sbyte[]> Member8;
        public static Struct_4 CreateDefault()
        {
            return new Struct_4();
        }
        public Struct_4(short Member0, sbyte[] Member8)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
        }
    }
    public struct Struct_5 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.Write_6(Member0);
            m.Write_6(Member10);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.Read_6();
            Member10 = u.Read_6();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public Struct_6 Member0;
        public Struct_6 Member10;
        public static Struct_5 CreateDefault()
        {
            return new Struct_5();
        }
        public Struct_5(Struct_6 Member0, Struct_6 Member10)
        {
            this.Member0 = Member0;
            this.Member10 = Member10;
        }
    }
    public struct Struct_6 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteEmbeddedPointer<short[], long>(Member8, new System.Action<short[], long>(m.Write_22), Member0);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member8 = u.ReadEmbeddedPointer<short[]>(new System.Func<short[]>(u.Read_22), false);
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<short[]> Member8;
        public static Struct_6 CreateDefault()
        {
            return new Struct_6();
        }
        public Struct_6(int Member0, short[] Member8)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
        }
    }
    public struct Struct_7 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteEmbeddedPointer<sbyte[], long>(Member8, new System.Action<sbyte[], long>(m.Write_23), Member0);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member8 = u.ReadEmbeddedPointer<sbyte[]>(new System.Func<sbyte[]>(u.Read_23), false);
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<sbyte[]> Member8;
        public static Struct_7 CreateDefault()
        {
            return new Struct_7();
        }
        public Struct_7(int Member0, sbyte[] Member8)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
        }
    }
    public struct Struct_8 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteEnum16(Member0);
            m.Write_9(Member4);
            m.WriteSByte(Member54);
            m.Write_12(Member58);
            m.WriteSByte(Member7C);
            m.Write_11(Member7D);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadEnum16();
            Member4 = u.Read_9();
            Member54 = u.ReadSByte();
            Member58 = u.Read_12();
            Member7C = u.ReadSByte();
            Member7D = u.Read_11();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public NtApiDotNet.Ndr.Marshal.NdrEnum16 Member0;
        public Struct_9 Member4;
        public sbyte Member54;
        public Struct_12 Member58;
        public sbyte Member7C;
        public Struct_11 Member7D;
        public static Struct_8 CreateDefault()
        {
            return new Struct_8();
        }
        public Struct_8(NtApiDotNet.Ndr.Marshal.NdrEnum16 Member0, Struct_9 Member4, sbyte Member54, Struct_12 Member58, sbyte Member7C, Struct_11 Member7D)
        {
            this.Member0 = Member0;
            this.Member4 = Member4;
            this.Member54 = Member54;
            this.Member58 = Member58;
            this.Member7C = Member7C;
            this.Member7D = Member7D;
        }
    }
    public struct Struct_9 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteInt32(Member4);
            m.WriteInt32(Member8);
            m.Write_24(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(MemberC, "MemberC"));
            m.WriteInt16(Member4C);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member4 = u.ReadInt32();
            Member8 = u.ReadInt32();
            MemberC = u.Read_24();
            Member4C = u.ReadInt16();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public int Member4;
        public int Member8;
        public Struct_10[] MemberC;
        public short Member4C;
        public static Struct_9 CreateDefault()
        {
            Struct_9 ret = new Struct_9();
            ret.MemberC = new Struct_10[2];
            return ret;
        }
        public Struct_9(int Member0, int Member4, int Member8, Struct_10[] MemberC, short Member4C)
        {
            this.Member0 = Member0;
            this.Member4 = Member4;
            this.Member8 = Member8;
            this.MemberC = MemberC;
            this.Member4C = Member4C;
        }
    }
    public struct Struct_10 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.Write_11(Member0);
            m.WriteInt32(Member10);
            m.WriteInt32(Member14);
            m.WriteInt32(Member18);
            m.WriteInt32(Member1C);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.Read_11();
            Member10 = u.ReadInt32();
            Member14 = u.ReadInt32();
            Member18 = u.ReadInt32();
            Member1C = u.ReadInt32();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public Struct_11 Member0;
        public int Member10;
        public int Member14;
        public int Member18;
        public int Member1C;
        public static Struct_10 CreateDefault()
        {
            return new Struct_10();
        }
        public Struct_10(Struct_11 Member0, int Member10, int Member14, int Member18, int Member1C)
        {
            this.Member0 = Member0;
            this.Member10 = Member10;
            this.Member14 = Member14;
            this.Member18 = Member18;
            this.Member1C = Member1C;
        }
    }
    public struct Struct_11 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.Write_25(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(Member0, "Member0"));
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.Read_25();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 1;
        }
        public sbyte[] Member0;
        public static Struct_11 CreateDefault()
        {
            Struct_11 ret = new Struct_11();
            ret.Member0 = new sbyte[16];
            return ret;
        }
        public Struct_11(sbyte[] Member0)
        {
            this.Member0 = Member0;
        }
    }
    public struct Struct_12 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.Write_10(Member4);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member4 = u.Read_10();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public Struct_10 Member4;
        public static Struct_12 CreateDefault()
        {
            return new Struct_12();
        }
        public Struct_12(int Member0, Struct_10 Member4)
        {
            this.Member0 = Member0;
            this.Member4 = Member4;
        }
    }
    public struct Struct_13 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteSByte(Member0);
            m.WriteSByte(Member1);
            m.WriteSByte(Member2);
            m.WriteSByte(Member3);
            m.WriteInt32(Member4);
            m.WriteInt32(Member8);
            m.WriteSByte(MemberC);
            m.WriteInt32(Member10);
            m.WriteEmbeddedPointer<sbyte[], long>(Member18, new System.Action<sbyte[], long>(m.Write_26), Member10);
            m.WriteInt32(Member20);
            m.WriteEmbeddedPointer<string[], long>(Member28, new System.Action<string[], long>(m.Write_27), Member20);
            m.WriteInt32(Member30);
            m.WriteEmbeddedPointer<Struct_11[], long>(Member38, new System.Action<Struct_11[], long>(m.Write_28), Member30);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadSByte();
            Member1 = u.ReadSByte();
            Member2 = u.ReadSByte();
            Member3 = u.ReadSByte();
            Member4 = u.ReadInt32();
            Member8 = u.ReadInt32();
            MemberC = u.ReadSByte();
            Member10 = u.ReadInt32();
            Member18 = u.ReadEmbeddedPointer<sbyte[]>(new System.Func<sbyte[]>(u.Read_26), false);
            Member20 = u.ReadInt32();
            Member28 = u.ReadEmbeddedPointer<string[]>(new System.Func<string[]>(u.Read_27), false);
            Member30 = u.ReadInt32();
            Member38 = u.ReadEmbeddedPointer<Struct_11[]>(new System.Func<Struct_11[]>(u.Read_28), false);
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public sbyte Member0;
        public sbyte Member1;
        public sbyte Member2;
        public sbyte Member3;
        public int Member4;
        public int Member8;
        public sbyte MemberC;
        public int Member10;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<sbyte[]> Member18;
        public int Member20;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<string[]> Member28;
        public int Member30;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_11[]> Member38;
        public static Struct_13 CreateDefault()
        {
            return new Struct_13();
        }
        public Struct_13(sbyte Member0, sbyte Member1, sbyte Member2, sbyte Member3, int Member4, int Member8, sbyte MemberC, int Member10, sbyte[] Member18, int Member20, string[] Member28, int Member30, Struct_11[] Member38)
        {
            this.Member0 = Member0;
            this.Member1 = Member1;
            this.Member2 = Member2;
            this.Member3 = Member3;
            this.Member4 = Member4;
            this.Member8 = Member8;
            this.MemberC = MemberC;
            this.Member10 = Member10;
            this.Member18 = Member18;
            this.Member20 = Member20;
            this.Member28 = Member28;
            this.Member30 = Member30;
            this.Member38 = Member38;
        }
    }
    public struct Struct_14 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteEmbeddedPointer<Struct_15[], long>(Member0, new System.Action<Struct_15[], long>(m.Write_29), Member8);
            m.WriteInt32(Member8);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadEmbeddedPointer<Struct_15[]>(new System.Func<Struct_15[]>(u.Read_29), false);
            Member8 = u.ReadInt32();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_15[]> Member0;
        public int Member8;
        public static Struct_14 CreateDefault()
        {
            return new Struct_14();
        }
        public Struct_14(Struct_15[] Member0, int Member8)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
        }
    }
    public struct Struct_15 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.Write_30(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(Member4, "Member4"));
            m.Write_31(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(Member1C, "Member1C"));
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member4 = u.Read_30();
            Member1C = u.Read_31();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public sbyte[] Member4;
        public sbyte[] Member1C;
        public static Struct_15 CreateDefault()
        {
            Struct_15 ret = new Struct_15();
            ret.Member4 = new sbyte[24];
            ret.Member1C = new sbyte[196];
            return ret;
        }
        public Struct_15(int Member0, sbyte[] Member4, sbyte[] Member1C)
        {
            this.Member0 = Member0;
            this.Member4 = Member4;
            this.Member1C = Member1C;
        }
    }
    public struct Struct_16 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteInt32(Member0);
            m.WriteEmbeddedPointer<Struct_17[], long>(Member8, new System.Action<Struct_17[], long>(m.Write_32), Member0);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadInt32();
            Member8 = u.ReadEmbeddedPointer<Struct_17[]>(new System.Func<Struct_17[]>(u.Read_32), false);
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public int Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_17[]> Member8;
        public static Struct_16 CreateDefault()
        {
            Struct_16 ret = new Struct_16();
            ret.Member8 = new Struct_17[0];
            return ret;
        }
        public Struct_16(int Member0, Struct_17[] Member8)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
        }
    }
    public struct Struct_17 : NtApiDotNet.Ndr.Marshal.INdrStructure
    {
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Marshal(NtApiDotNet.Ndr.Marshal.NdrMarshalBuffer m)
        {
            Marshal(((_Marshal_Helper)(m)));
        }
        private void Marshal(_Marshal_Helper m)
        {
            m.WriteSByte(Member0);
            m.WriteEmbeddedPointer<Struct_0>(Member8, new System.Action<Struct_0>(m.Write_0));
            m.WriteEmbeddedPointer<Struct_8>(Member10, new System.Action<Struct_8>(m.Write_8));
            m.WriteEmbeddedPointer<Struct_4>(Member18, new System.Action<Struct_4>(m.Write_4));
            m.WriteEmbeddedPointer<Struct_4>(Member20, new System.Action<Struct_4>(m.Write_4));
            m.WriteEmbeddedPointer<Struct_13>(Member28, new System.Action<Struct_13>(m.Write_13));
            m.WriteInt32(Member30);
        }
        void NtApiDotNet.Ndr.Marshal.INdrStructure.Unmarshal(NtApiDotNet.Ndr.Marshal.NdrUnmarshalBuffer u)
        {
            Unmarshal(((_Unmarshal_Helper)(u)));
        }
        private void Unmarshal(_Unmarshal_Helper u)
        {
            Member0 = u.ReadSByte();
            Member8 = u.ReadEmbeddedPointer<Struct_0>(new System.Func<Struct_0>(u.Read_0), false);
            Member10 = u.ReadEmbeddedPointer<Struct_8>(new System.Func<Struct_8>(u.Read_8), false);
            Member18 = u.ReadEmbeddedPointer<Struct_4>(new System.Func<Struct_4>(u.Read_4), false);
            Member20 = u.ReadEmbeddedPointer<Struct_4>(new System.Func<Struct_4>(u.Read_4), false);
            Member28 = u.ReadEmbeddedPointer<Struct_13>(new System.Func<Struct_13>(u.Read_13), false);
            Member30 = u.ReadInt32();
        }
        int NtApiDotNet.Ndr.Marshal.INdrStructure.GetAlignment()
        {
            return 4;
        }
        public sbyte Member0;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_0> Member8;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_8> Member10;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_4> Member18;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_4> Member20;
        public NtApiDotNet.Ndr.Marshal.NdrEmbeddedPointer<Struct_13> Member28;
        public int Member30;
        public static Struct_17 CreateDefault()
        {
            return new Struct_17();
        }
        public Struct_17(sbyte Member0, Struct_0 Member8, Struct_8 Member10, Struct_4 Member18, Struct_4 Member20, Struct_13 Member28, int Member30)
        {
            this.Member0 = Member0;
            this.Member8 = Member8;
            this.Member10 = Member10;
            this.Member18 = Member18;
            this.Member20 = Member20;
            this.Member28 = Member28;
            this.Member30 = Member30;
        }
    }
    #endregion
    #region Client Implementation
    public sealed class Client : NtApiDotNet.Win32.Rpc.RpcClientBase
    {
        public Client() : 
                base("3c4728c5-f0ab-448b-bda1-6ce01eb0a6d6", 1, 0)
        {
        }
        private _Unmarshal_Helper SendReceive(int p, _Marshal_Helper m)
        {
            return new _Unmarshal_Helper(SendReceive(p, m.DataRepresentation, m.ToArray(), m.Handles));
        }
        public int RpcSrvRequestPrefixEx(string p0, Struct_0 p1, System.Nullable<Struct_1> p2, ref Struct_2 p3, out Struct_4 p4, out int p5, int p6)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteReferent(p2, new System.Action<Struct_1>(m.Write_1));
            m.Write_2(p3);
            m.WriteInt32(p6);
            _Unmarshal_Helper u = SendReceive(0, m);
            p3 = u.Read_2();
            p4 = u.Read_4();
            p5 = u.ReadInt32();
            return u.ReadInt32();
        }
        public int RpcSrvRenewPrefixEx(string p0, Struct_0 p1, System.Nullable<Struct_1> p2, ref Struct_2 p3, Struct_4 p4, out int p5, int p6, int p7)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteReferent(p2, new System.Action<Struct_1>(m.Write_1));
            m.Write_2(p3);
            m.Write_4(p4);
            m.WriteInt32(p6);
            m.WriteInt32(p7);
            _Unmarshal_Helper u = SendReceive(1, m);
            p3 = u.Read_2();
            p5 = u.ReadInt32();
            return u.ReadInt32();
        }
        public int RpcSrvReleasePrefixEx(string p0, Struct_0 p1, System.Nullable<Struct_1> p2, Struct_2 p3, Struct_4 p4, int p5)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteReferent(p2, new System.Action<Struct_1>(m.Write_1));
            m.Write_2(p3);
            m.Write_4(p4);
            m.WriteInt32(p5);
            _Unmarshal_Helper u = SendReceive(2, m);
            return u.ReadInt32();
        }
        public int RpcSrvCancelOperation(string p0)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            _Unmarshal_Helper u = SendReceive(3, m);
            return u.ReadInt32();
        }
        public int RpcSrvEnablev6Tracing(string p0, int p1)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.WriteInt32(p1);
            _Unmarshal_Helper u = SendReceive(4, m);
            return u.ReadInt32();
        }
        public int RpcSrvRequestParams(string p0, Struct_0 p1, System.Nullable<Struct_1> p2, int p3, Struct_5 p4, out Struct_7 p5)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteReferent(p2, new System.Action<Struct_1>(m.Write_1));
            m.WriteInt32(p3);
            m.Write_5(p4);
            _Unmarshal_Helper u = SendReceive(5, m);
            p5 = u.Read_7();
            return u.ReadInt32();
        }
        public int RpcSrvAcquireParametersv6(string p0, Struct_0 p1)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            _Unmarshal_Helper u = SendReceive(6, m);
            return u.ReadInt32();
        }
        public int RpcSrvReleaseParametersv6(string p0, Struct_0 p1)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            _Unmarshal_Helper u = SendReceive(7, m);
            return u.ReadInt32();
        }
        public int RpcSrvQueryLeaseInfov6(string p0, Struct_0 p1, out Struct_8 p2, out Struct_4 p3, out Struct_4 p4, out Struct_13 p5, out int p6)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            _Unmarshal_Helper u = SendReceive(8, m);
            p2 = u.Read_8();
            p3 = u.Read_4();
            p4 = u.Read_4();
            p5 = u.Read_13();
            p6 = u.ReadInt32();
            return u.ReadInt32();
        }
        public int RpcSrvGetTraceArray(string p0, out Struct_14 p1)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            _Unmarshal_Helper u = SendReceive(9, m);
            p1 = u.Read_14();
            return u.ReadInt32();
        }
        public int RpcSrvSetUserClass(string p0, Struct_0 p1, string p2, int p3)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteTerminatedString(NtApiDotNet.Win32.Rpc.RpcUtils.CheckNull(p2, "p2"));
            m.WriteInt32(p3);
            _Unmarshal_Helper u = SendReceive(10, m);
            return u.ReadInt32();
        }
        public int RpcSrvQueryLeaseInfov6Array(string p0, ref Struct_16 p1)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_16(p1);
            _Unmarshal_Helper u = SendReceive(11, m);
            p1 = u.Read_16();
            return u.ReadInt32();
        }
        public int RpcSrvEnableDhcpv6(string p0, Struct_0 p1, int p2)
        {
            _Marshal_Helper m = new _Marshal_Helper();
            m.WriteReferent(p0, new System.Action<string>(m.WriteTerminatedString));
            m.Write_0(p1);
            m.WriteInt32(p2);
            _Unmarshal_Helper u = SendReceive(12, m);
            return u.ReadInt32();
        }
    }
    #endregion
}

