/// <summary>
        ///     Sets the control information about illumination zones on the given GPU.
        /// </summary>
        /// <param name="gpuHandle">The physical GPU handle.</param>
        /// <param name="zoneControlParameters">The new control illumination zones control information.</param>
        public static void ClientIlluminationZonesSetControl(
            PhysicalGPUHandle gpuHandle,
            IlluminationZoneControlParametersV1 zoneControlParameters)
        {
            using (var zoneControlParametersReference = ValueTypeReference.FromValueType(zoneControlParameters))
            {
                var status = DelegateFactory.GetDelegate <Delegates.GPU.NvAPI_GPU_ClientIlluminationZonesSetControl>()(
                    gpuHandle,
                    zoneControlParametersReference
                    );

                if (status != Status.Ok)
                {
                    throw new NVIDIAApiException(status);
                }
            }
        }
        /// <summary>
        ///     Gets the control information about illumination zones on the given GPU.
        /// </summary>
        /// <param name="gpuHandle">The physical GPU handle.</param>
        /// <param name="valuesType">The type of settings to retrieve.</param>
        /// <returns>An instance of <see cref="IlluminationZoneControlParametersV1" />.</returns>
        public static IlluminationZoneControlParametersV1 ClientIlluminationZonesGetControl(
            PhysicalGPUHandle gpuHandle,
            IlluminationZoneControlValuesType valuesType)
        {
            var instance = new IlluminationZoneControlParametersV1(valuesType);

            using (var zoneControlParametersReference = ValueTypeReference.FromValueType(instance))
            {
                var status = DelegateFactory.GetDelegate <Delegates.GPU.NvAPI_GPU_ClientIlluminationZonesGetControl>()(
                    gpuHandle,
                    zoneControlParametersReference
                    );

                if (status != Status.Ok)
                {
                    throw new NVIDIAApiException(status);
                }

                return(zoneControlParametersReference.ToValueType <IlluminationZoneControlParametersV1>()
                       .GetValueOrDefault());
            }
        }