Esempio n. 1
0
        public IAmClusterResource CreateResource(string resName, string resType)
        {
            try
            {
                using (this.OwningCluster.OpenResource(resName))
                {
                    throw new ClusResourceAlreadyExistsException(resName);
                }
            }
            catch (ClusterApiException ex)
            {
                Win32Exception ex2 = ex.InnerException as Win32Exception;
                if (ex2 != null && (long)ex2.NativeErrorCode != 5007L)
                {
                    throw;
                }
            }
            AmClusterResourceHandle amClusterResourceHandle = ClusapiMethods.CreateClusterResource(this.Handle, resName, resType, ClusterResourceCreateFlags.CLUSTER_RESOURCE_DEFAULT_MONITOR);

            if (amClusterResourceHandle.IsInvalid)
            {
                int lastWin32Error = Marshal.GetLastWin32Error();
                throw AmExceptionHelper.ConstructClusterApiException(lastWin32Error, "CreateClusterResource(name={0},type={1})", new object[]
                {
                    resName,
                    resType
                });
            }
            return(new AmClusterResource(resName, this.OwningCluster, amClusterResourceHandle));
        }
Esempio n. 2
0
 // Token: 0x06000243 RID: 579 RVA: 0x0000A7B0 File Offset: 0x000089B0
 protected override void InternalDispose(bool disposing)
 {
     lock (this)
     {
         if (disposing && this.Handle != null && !this.Handle.IsInvalid)
         {
             this.Handle.Dispose();
             this.Handle = null;
         }
     }
 }
Esempio n. 3
0
 // Token: 0x06000244 RID: 580 RVA: 0x0000AAA4 File Offset: 0x00008CA4
 private static IEnumerable <string> EnumerateObjects(AmClusterResourceHandle handle, AmClusterResourceEnum objectType)
 {
     new List <string>(16);
     using (AmClusResourceEnumHandle enumHandle = ClusapiMethods.ClusterResourceOpenEnum(handle, objectType))
     {
         if (enumHandle.IsInvalid)
         {
             int lastWin32Error = Marshal.GetLastWin32Error();
             throw AmExceptionHelper.ConstructClusterApiException(lastWin32Error, "ClusterOpenResourceEnum(objecttype={0})", new object[]
             {
                 objectType
             });
         }
         int           entryIndex       = 0;
         int           objectNameLen    = 256;
         StringBuilder objectNameBuffer = new StringBuilder(objectNameLen);
         int           errorCode;
         for (;;)
         {
             objectNameLen = objectNameBuffer.Capacity;
             AmClusterResourceEnum objectTypeRetrived;
             errorCode = ClusapiMethods.ClusterResourceEnum(enumHandle, entryIndex, out objectTypeRetrived, objectNameBuffer, ref objectNameLen);
             if (errorCode == 259)
             {
                 goto IL_171;
             }
             if (errorCode == 234)
             {
                 objectNameBuffer.EnsureCapacity(objectNameLen);
             }
             else
             {
                 if (errorCode != 0)
                 {
                     break;
                 }
                 if (objectTypeRetrived == objectType)
                 {
                     yield return(objectNameBuffer.ToString());
                 }
                 entryIndex++;
             }
         }
         throw AmExceptionHelper.ConstructClusterApiException(errorCode, "ClusterResourceEnum()", new object[0]);
         IL_171 :;
     }
     yield break;
 }
Esempio n. 4
0
 internal static extern AmClusResourceEnumHandle ClusterResourceOpenEnum([In] AmClusterResourceHandle hCluster, [In] AmClusterResourceEnum dwType);
Esempio n. 5
0
 internal static extern uint RemoveClusterResourceNode([In] AmClusterResourceHandle hResource, [In] AmClusterNodeHandle hNode);
Esempio n. 6
0
 internal static extern int ClusterResourceControl([In] AmClusterResourceHandle hResource, [In] IntPtr hNode, [In] AmClusterResourceControlCode controlCode, [In] IntPtr inBuffer, [In] uint inBufferSize, [Out] IntPtr outBuffer, [In] uint outBufferSize, out uint bytesReturned);
Esempio n. 7
0
 internal static extern uint SetClusterQuorumResource([In] AmClusterResourceHandle hResource, [MarshalAs(UnmanagedType.LPWStr)][In][Optional] string deviceName, [In] uint maxQuorumLogSize);
Esempio n. 8
0
 internal static extern uint SetClusterResourceDependencyExpression([In] AmClusterResourceHandle clusterResourceHandle, [MarshalAs(UnmanagedType.LPWStr)][In] string dependencyExpression);
Esempio n. 9
0
 internal static extern uint RemoveClusterResourceDependency([In] AmClusterResourceHandle hResource, [In] AmClusterResourceHandle hDependsOn);
Esempio n. 10
0
 internal static extern uint DeleteClusterResource([In] AmClusterResourceHandle hResource);
Esempio n. 11
0
 internal static extern uint OfflineClusterResource([In] AmClusterResourceHandle hresource);
Esempio n. 12
0
 internal static extern AmResourceState GetClusterResourceState([In] AmClusterResourceHandle hresource, [Out] StringBuilder owningNodeName, [In][Out] ref uint nodeNameLength, [Out] StringBuilder owningGroupName, [In][Out] ref uint groupNameLength);
Esempio n. 13
0
 public static extern AmClusterRegkeyHandle GetClusterResourceKey(AmClusterResourceHandle clusterResourceHandle, RegSAM samDesired);
Esempio n. 14
0
 // Token: 0x06000227 RID: 551 RVA: 0x0000A120 File Offset: 0x00008320
 internal AmClusterResource(string resourceName, IAmCluster owningCluster, AmClusterResourceHandle resourceHandle)
 {
     this.m_name        = resourceName;
     this.OwningCluster = owningCluster;
     this.Handle        = resourceHandle;
 }