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)); }
// 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; } } }
// 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; }
internal static extern AmClusResourceEnumHandle ClusterResourceOpenEnum([In] AmClusterResourceHandle hCluster, [In] AmClusterResourceEnum dwType);
internal static extern uint RemoveClusterResourceNode([In] AmClusterResourceHandle hResource, [In] AmClusterNodeHandle hNode);
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);
internal static extern uint SetClusterQuorumResource([In] AmClusterResourceHandle hResource, [MarshalAs(UnmanagedType.LPWStr)][In][Optional] string deviceName, [In] uint maxQuorumLogSize);
internal static extern uint SetClusterResourceDependencyExpression([In] AmClusterResourceHandle clusterResourceHandle, [MarshalAs(UnmanagedType.LPWStr)][In] string dependencyExpression);
internal static extern uint RemoveClusterResourceDependency([In] AmClusterResourceHandle hResource, [In] AmClusterResourceHandle hDependsOn);
internal static extern uint DeleteClusterResource([In] AmClusterResourceHandle hResource);
internal static extern uint OfflineClusterResource([In] AmClusterResourceHandle hresource);
internal static extern AmResourceState GetClusterResourceState([In] AmClusterResourceHandle hresource, [Out] StringBuilder owningNodeName, [In][Out] ref uint nodeNameLength, [Out] StringBuilder owningGroupName, [In][Out] ref uint groupNameLength);
public static extern AmClusterRegkeyHandle GetClusterResourceKey(AmClusterResourceHandle clusterResourceHandle, RegSAM samDesired);
// 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; }