private AmClusterRawData GetGroupControlData(AmClusterGroupControlCode code) { uint num = 1024U; AmClusterRawData amClusterRawData = AmClusterRawData.Allocate(num); int num2 = ClusapiMethods.ClusterGroupControl(this.m_handle, IntPtr.Zero, code, IntPtr.Zero, 0U, amClusterRawData.Buffer, num, out num); if (num2 == 234) { amClusterRawData.Dispose(); amClusterRawData = AmClusterRawData.Allocate(num); num2 = ClusapiMethods.ClusterGroupControl(this.m_handle, IntPtr.Zero, code, IntPtr.Zero, 0U, amClusterRawData.Buffer, num, out num); } if (num2 != 0) { amClusterRawData.Dispose(); throw AmExceptionHelper.ConstructClusterApiException(num2, "ClusterGroupControl(controlcode={0})", new object[] { code }); } return(amClusterRawData); }
internal static extern int ClusterGroupControl([In] AmClusterGroupHandle hGroup, [In] IntPtr hNode, [In] AmClusterGroupControlCode controlCode, [In] IntPtr inBuffer, [In] uint inBufferSize, [Out] IntPtr outBuffer, [In] uint outBufferSize, out uint bytesReturned);