#pragma autorecover
#pragma namespace("\\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement\\ms_804")

[AMENDMENT, LOCALE(0x0804)] 
class SqlService
{
  [Description("PathName 属性包含实现该服务的服务二进制文件的完全限定路径。\n示例: \\SystemRoot\\System32\\drivers\\afd.sys") : Amended] string BinaryPath;
  [Description("该服务所驻留的系统的名称。") : Amended] string HostName;
  [Description("StartMode 属性指示 Win32 基本服务的启动模式。\"引导\" 指定由操作系统加载器启动的设备驱动程序。此值仅对驱动程序服务有效。\"系统\" 指定由 IoInitSystem 函数启动的设备驱动程序。此值仅对驱动程序服务有效。\"自动\" 指定在系统启动期间由服务控制管理器自动启动的服务。\"手动\" 指定当某一进程调用 StartService 函数时由服务控制管理器启动的服务。\"已禁用\" 则指定不再启动的服务。") : Amended] uint32 StartMode;
  [Description("AcceptPause 属性指示是否可以暂停服务。\n值: TRUE 或 FALSE。值为 TRUE 指示可以暂停服务。") : Amended] boolean AcceptPause;
  [Description("AcceptStop 属性指示是否可以停止服务。\n值: TRUE 或 FALSE。值为 TRUE 表示可以停止服务。") : Amended] boolean AcceptStop;
  [Description("DisplayName 属性指示服务的显示名称。此字符串最多包含 256 个字符。该名称在服务控制管理器中保留原大小写形式，但 DisplayName 比较时始终不区分大小写。\n约束: 允许与 Name 属性使用同一值。\n示例: Atdisk。") : Amended] string DisplayName;
  [Description("如果在系统启动时无法启动该服务，ErrorControl 属性指定错误的严重性。该值指示出现错误时启动程序将执行的操作。计算机系统会记录所有错误。计算机系统不会通知用户“忽略”错误。出现“一般”错误时系统将通知用户。出现“严重”错误时，会使用上一次已知正确的配置重新启动系统。最后，当出现“致命”错误时，系统将尝试使用正确的配置重新启动。") : Amended] uint32 ErrorControl;
  [Description("StartName 属性指示运行服务的帐户名。帐户名的格式可能为 \"DomainName\\Username\"，具体取决于服务类型。当服务进程运行时，系统将使用以下两种格式之一记录它。如果该帐户属于内置域，则可以指定 \".\\Username\" 。如果指定了 NULL，那么将以 LocalSystem 帐户登录该服务。对于内核驱动程序或系统级驱动程序，StartName 包含驱动程序对象名称(即 \\FileSystem\\Rdr 或 \\Driver\\Xns)，输入和输出(I/O)系统要使用该名称加载设备驱动程序。此外，如果指定了 NULL，该驱动程序将以 I/O 系统根据服务名称创建的默认对象名称运行。\n示例: DWDOM\\Admin。") : Amended] string StartName;
  [Description("State 属性指示基本服务的当前状态。") : Amended] uint32 State;
  [Description("ProcessId 属性指定服务的进程标识符。\n示例: 324") : Amended] uint32 ProcessId;
  [Description("ExitCode 属性指定 Win32 错误代码，该代码定义在启动或停止服务时遇到的任何问题。如果错误对于此类表示的服务是唯一的，而且 ServiceSpecificExitCode 成员中包含该错误的相关信息，则此属性将被设置为 ERROR_SERVICE_SPECIFIC_ERROR (1066)。当服务运行时，会将此值设置为 NO_ERROR，在服务正常终止时会再次对它进行设置。") : Amended] uint32 ExitCode;
  [Description("") : Amended] string Description;
  [Description("依赖的服务。") : Amended] string Dependencies[];
  [Description("StopService 方法将服务置于停止状态。如果成功停止服务，则返回整数值 0；如果不支持该请求，则返回值 1；如果出现错误，则返回任何其他指示该错误的数字。") : Amended] uint32 StopService();
  [Description("StartService 方法尝试将服务置于启动状态。该方法返回以下整数值之一:\n0 - 已接受该请求。\n1 - 不支持该请求。\n2 - 用户没有所需的访问权限。\n3 - 由于其他正在运行的服务依赖于该服务，不能停止该服务。\n4 - 请求的控制代码无效或服务无法接受该控制代码。\n5 - 由于服务的状态(Win32_BaseService:State)为 0、1 或 2，无法将请求的控制代码发送到该服务。\n6 - 该服务尚未启动。\n7 - 该服务未及时响应启动请求。\n8 - 启动服务时出现未知故障。\n9 - 找不到指向服务可执行文件的目录路径。\n10 - 服务已在运行。\n11 - 要添加新服务的数据库已锁定。\n12 - 已从系统中删除此服务依赖的依赖项。\n13 - 该服务无法从依赖的服务中找到所需的服务。\n14 - 已从系统禁用该服务。\n15 - 服务没有在该系统上运行所需的正确身份验证。\n16 - 正在从系统删除此服务。\n17 - 该服务没有执行线程。\n18 - 启动服务时存在循环依赖关系。\n19 - 已有一个同名的服务在运行。\n20 - 该服务的名称中包含无效字符。\n21 - 向服务传递的参数无效。\n22 - 用来运行该服务的帐户无效或无权运行该服务。\n23 - 系统的服务数据库中已存在该服务。\n24 - 该服务目前在系统中已暂停。\n") : Amended] uint32 StartService();
  [Description("PauseService 方法尝试将服务置于暂停状态。如果接受 PauseService 请求，则返回整数值 0；如果不支持该请求，则返回值 1；如果出现错误，则返回任何其他指示该错误的数字。") : Amended] uint32 PauseService();
  [Description("ResumeService 方法尝试将服务置于恢复状态。如果接受 ResumeService 请求，则返回整数值 0；如果不支持该请求，则返回值 1；如果出现错误，则返回任何其他指示该错误的数字。") : Amended] uint32 ResumeService();
  [Description("") : Amended] uint32 SetServiceAccount([in] string ServiceStartName,[in] string ServiceStartPassword);
  [Description("") : Amended] uint32 SetServiceAccountPassword([in] string AccountOldPassword,[in] string AccountNewPassword);
  [Description("") : Amended] uint32 SetStartMode([in] uint32 StartMode);
};

[AMENDMENT, LOCALE(0x0804)] 
class SqlServiceAdvancedProperty
{
  [Description("") : Amended] uint32 SetNumericalValue([IN] uint32 NumValue);
  [Description("") : Amended] uint32 SetStringValue([IN] string StrValue);
  [Description("") : Amended] uint32 SetBoolValue([IN] uint32 BoolValue);
};

[AMENDMENT, LOCALE(0x0804)] 
class ClientSettings
{
  [Description("") : Amended] uint32 SetDefaults([IN] boolean OverwriteAll);
};

[AMENDMENT, LOCALE(0x0804)] 
class ClientNetworkProtocol
{
  [Description("") : Amended] uint32 GetNextOrderValue();
  [Description("") : Amended] uint32 SetOrderValue([IN] uint32 OrderValue);
  [Description("") : Amended] uint32 SetEnable();
  [Description("") : Amended] uint32 SetDisable();
  [Description("") : Amended] uint32 SetProtocolsOrder([IN] string ProtocolOrderList[]);
};

[AMENDMENT, LOCALE(0x0804)] 
class ClientNetworkProtocolProperty
{
  [Description("") : Amended] uint32 SetNumericalValue([IN] uint32 NumValue);
  [Description("") : Amended] uint32 SetStringValue([IN] string StrValue);
  [Description("") : Amended] uint32 SetFlag([IN] boolean BoolValue);
};

[AMENDMENT, LOCALE(0x0804)] 
class ServerNetworkProtocol
{
  [Description("") : Amended] uint32 SetEnable();
  [Description("") : Amended] uint32 SetDisable();
};

[AMENDMENT, LOCALE(0x0804)] 
class ServerNetworkProtocolIPAddress
{
  [Description("") : Amended] uint32 SetEnable();
  [Description("") : Amended] uint32 SetDisable();
};

[AMENDMENT, LOCALE(0x0804)] 
class ServerNetworkProtocolProperty
{
  [Description("") : Amended] uint32 SetNumericalValue([IN] uint32 NumValue);
  [Description("") : Amended] uint32 SetStringValue([IN] string StrValue);
  [Description("") : Amended] uint32 SetFlag([IN] boolean BoolValue);
};

[AMENDMENT, LOCALE(0x0804)] 
class ServerSettings
{
  [Description("") : Amended] uint32 SetDefaults([IN] boolean OverwriteAll);
  [Description("") : Amended] uint32 GetCurrentCertificate([OUT] string SHA);
  [Description("") : Amended] uint32 SetCurrentCertificate([IN] string SHA);
  [Description("") : Amended] uint32 RemoveCertificate();
  [Description("获取与专用管理连接关联的 TCP 端口的当前值") : Amended] uint32 GetDacTcpPort([OUT] string Port);
  [Description("设置与专用管理连接关联的 TCP 端口的当前值") : Amended] uint32 SetDacTcpPort([IN] string Port);
};

[AMENDMENT, LOCALE(0x0804)] 
class ServerSettingsGeneralFlag
{
  [Description("") : Amended] uint32 SetValue([IN] boolean Value);
};

[AMENDMENT, LOCALE(0x0804)] 
class ClientSettingsGeneralFlag
{
  [Description("") : Amended] uint32 SetValue([IN] boolean Value);
};
