def nvmlDeviceSetDriverModel(handle, model):
    r"""
    /**
     * Set the driver model for the device.
     *
     * For Fermi &tm; or newer fully supported devices.
     * For windows only.
     * Requires root/admin permissions.
     *
     * On Windows platforms the device driver can run in either WDDM or WDM (TCC) mode. If a display is attached
     * to the device it must run in WDDM mode.
     *
     * It is possible to force the change to WDM (TCC) while the display is still attached with a force flag (nvmlFlagForce).
     * This should only be done if the host is subsequently powered down and the display is detached from the device
     * before the next reboot.
     *
     * This operation takes effect after the next reboot.
     *
     * Windows driver model may only be set to WDDM when running in DEFAULT compute mode.
     *
     * Change driver model to WDDM is not supported when GPU doesn't support graphics acceleration or
     * will not support it after reboot. See \ref nvmlDeviceSetGpuOperationMode.
     *
     * See \ref nvmlDriverModel_t for details on available driver models.
     * See \ref nvmlFlagDefault and \ref nvmlFlagForce
     *
     * @param device                               The identifier of the target device
     * @param driverModel                          The target driver model
     * @param flags                                Flags that change the default behavior
     *
     * @return
     *         - \ref NVML_SUCCESS                 if the driver model has been set
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device is invalid or \a driverModel is invalid
     *         - \ref NVML_ERROR_NOT_SUPPORTED     if the platform is not windows or the device does not support this feature
     *         - \ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation
     *         - \ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible
     *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
     *
     * @see nvmlDeviceGetDriverModel()
     */
    nvmlReturn_t DECLDIR nvmlDeviceSetDriverModel
    """
    fn = _nvmlGetFunctionPointer("nvmlDeviceSetDriverModel")
    ret = fn(handle, _nvmlDriverModel_t(model))
    _nvmlCheckReturn(ret)
    return None