コード例 #1
0
		internal void AddHelper(DS_REPL_KCC_DSA_FAILURES failures, IntPtr info)
		{
			int num = failures.cNumEntries;
			for (int i = 0; i < num; i++)
			{
				IntPtr intPtr = (IntPtr)((long)info + (long)(Marshal.SizeOf(typeof(int)) * 2) + (long)(i * Marshal.SizeOf(typeof(DS_REPL_KCC_DSA_FAILURE))));
				ReplicationFailure replicationFailure = new ReplicationFailure(intPtr, this.server, this.nameTable);
				if (replicationFailure.LastErrorCode == 0)
				{
					replicationFailure.lastResult = ExceptionHelper.ERROR_DS_UNKNOWN_ERROR;
				}
				this.Add(replicationFailure);
			}
		}
 internal void AddHelper(DS_REPL_KCC_DSA_FAILURES failures, IntPtr info)
 {
     int cNumEntries = failures.cNumEntries;
     IntPtr zero = IntPtr.Zero;
     for (int i = 0; i < cNumEntries; i++)
     {
         zero = (IntPtr) ((((long) info) + (Marshal.SizeOf(typeof(int)) * 2)) + (i * Marshal.SizeOf(typeof(DS_REPL_KCC_DSA_FAILURE))));
         ReplicationFailure failure = new ReplicationFailure(zero, this.server, this.nameTable);
         if (failure.LastErrorCode == 0)
         {
             failure.lastResult = ExceptionHelper.ERROR_DS_UNKNOWN_ERROR;
         }
         this.Add(failure);
     }
 }
コード例 #3
0
        internal void AddHelper(DS_REPL_KCC_DSA_FAILURES failures, IntPtr info)
        {
            int num = failures.cNumEntries;

            for (int i = 0; i < num; i++)
            {
                IntPtr             intPtr             = (IntPtr)((long)info + (long)(Marshal.SizeOf(typeof(int)) * 2) + (long)(i * Marshal.SizeOf(typeof(DS_REPL_KCC_DSA_FAILURE))));
                ReplicationFailure replicationFailure = new ReplicationFailure(intPtr, this.server, this.nameTable);
                if (replicationFailure.LastErrorCode == 0)
                {
                    replicationFailure.lastResult = ExceptionHelper.ERROR_DS_UNKNOWN_ERROR;
                }
                this.Add(replicationFailure);
            }
        }
        internal void AddHelper(DS_REPL_KCC_DSA_FAILURES failures, IntPtr info)
        {
            int    cNumEntries = failures.cNumEntries;
            IntPtr zero        = IntPtr.Zero;

            for (int i = 0; i < cNumEntries; i++)
            {
                zero = (IntPtr)((((long)info) + (Marshal.SizeOf(typeof(int)) * 2)) + (i * Marshal.SizeOf(typeof(DS_REPL_KCC_DSA_FAILURE))));
                ReplicationFailure failure = new ReplicationFailure(zero, this.server, this.nameTable);
                if (failure.LastErrorCode == 0)
                {
                    failure.lastResult = ExceptionHelper.ERROR_DS_UNKNOWN_ERROR;
                }
                this.Add(failure);
            }
        }
 internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
 {
     ReplicationFailureCollection failures = new ReplicationFailureCollection(server);
     try
     {
         if (info != IntPtr.Zero)
         {
             DS_REPL_KCC_DSA_FAILURES structure = new DS_REPL_KCC_DSA_FAILURES();
             Marshal.PtrToStructure(info, structure);
             if (structure.cNumEntries > 0)
             {
                 failures.AddHelper(structure, info);
             }
         }
     }
     finally
     {
         this.FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
     }
     return failures;
 }
コード例 #6
0
        internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
        {
            ReplicationFailureCollection failures = new ReplicationFailureCollection(server);

            try
            {
                if (info != IntPtr.Zero)
                {
                    DS_REPL_KCC_DSA_FAILURES structure = new DS_REPL_KCC_DSA_FAILURES();
                    Marshal.PtrToStructure(info, structure);
                    if (structure.cNumEntries > 0)
                    {
                        failures.AddHelper(structure, info);
                    }
                }
            }
            finally
            {
                this.FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
            }
            return(failures);
        }
コード例 #7
0
        internal void AddHelper(DS_REPL_KCC_DSA_FAILURES failures, IntPtr info)
        {
            // get the count
            int count = failures.cNumEntries;

            IntPtr addr = (IntPtr)0;

            for (int i = 0; i < count; i++)
            {
                addr = IntPtr.Add(info, sizeof(int) * 2 + i * Marshal.SizeOf(typeof(DS_REPL_KCC_DSA_FAILURE)));

                ReplicationFailure managedFailure = new ReplicationFailure(addr, _server, _nameTable);

                // in certain scenario, KCC returns some failure records that we need to process it first before returning
                if (managedFailure.LastErrorCode == 0)
                {
                    // we change the error code to some generic one
                    managedFailure.lastResult = ExceptionHelper.ERROR_DS_UNKNOWN_ERROR;
                }

                Add(managedFailure);
            }
        }
コード例 #8
0
        internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
        {
            ReplicationFailureCollection replicationFailureCollection = new ReplicationFailureCollection(server);

            try
            {
                if (info != (IntPtr)0)
                {
                    DS_REPL_KCC_DSA_FAILURES dSREPLKCCDSAFAILURE = new DS_REPL_KCC_DSA_FAILURES();
                    Marshal.PtrToStructure(info, dSREPLKCCDSAFAILURE);
                    int num = dSREPLKCCDSAFAILURE.cNumEntries;
                    if (num > 0)
                    {
                        replicationFailureCollection.AddHelper(dSREPLKCCDSAFAILURE, info);
                    }
                }
            }
            finally
            {
                this.FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
            }
            return(replicationFailureCollection);
        }
コード例 #9
0
        internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
        {
            ReplicationFailureCollection collection = new ReplicationFailureCollection(server);
            int count = 0;

            try
            {
                if (info != (IntPtr)0)
                {
                    DS_REPL_KCC_DSA_FAILURES failures = new DS_REPL_KCC_DSA_FAILURES();
                    Marshal.PtrToStructure(info, failures);
                    count = failures.cNumEntries;
                    if (count > 0)
                    {
                        collection.AddHelper(failures, info);
                    }
                }
            }
            finally
            {
                FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
            }
            return(collection);
        }
コード例 #10
0
ファイル: DirectoryServer.cs プロジェクト: chcosta/corefx
        internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
        {
            ReplicationFailureCollection collection = new ReplicationFailureCollection(server);
            int count = 0;

            try
            {
                if (info != (IntPtr)0)
                {
                    DS_REPL_KCC_DSA_FAILURES failures = new DS_REPL_KCC_DSA_FAILURES();
                    Marshal.PtrToStructure(info, failures);
                    count = failures.cNumEntries;
                    if (count > 0)
                        collection.AddHelper(failures, info);
                }
            }
            finally
            {
                FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
            }
            return collection;
        }
コード例 #11
0
ファイル: DirectoryServer.cs プロジェクト: nickchal/pash
		internal ReplicationFailureCollection ConstructFailures(IntPtr info, DirectoryServer server, LoadLibrarySafeHandle libHandle)
		{
			ReplicationFailureCollection replicationFailureCollection = new ReplicationFailureCollection(server);
			try
			{
				if (info != (IntPtr)0)
				{
					DS_REPL_KCC_DSA_FAILURES dSREPLKCCDSAFAILURE = new DS_REPL_KCC_DSA_FAILURES();
					Marshal.PtrToStructure(info, dSREPLKCCDSAFAILURE);
					int num = dSREPLKCCDSAFAILURE.cNumEntries;
					if (num > 0)
					{
						replicationFailureCollection.AddHelper(dSREPLKCCDSAFAILURE, info);
					}
				}
			}
			finally
			{
				this.FreeReplicaInfo(DS_REPL_INFO_TYPE.DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES, info, libHandle);
			}
			return replicationFailureCollection;
		}