第十五章 从 Windows 客户端控制 IRIS
IRISctlRun
使用指定的主要 I/O 设备并调用指定的例程,在指定的配置和名称空间中启动 IRIS 进程。
Syntax
IRISctlRun(char *config, char *routine, char *namespace, char *IOtype)
zonfig- 运行配置的名称。routine- 要启动的所需例程的名称。namespace- 所需命名空间的名称。IOtype- 如何处理I/O,可能的值为:terminal- 进程启动一个新的IRIS程序员的终端。none— 无I/O。该进程在后台运行,NUL:用于$Principal。对$Principal的写入被丢弃。从$Principal读取会产生错误。
Return Values
IRISCTL_SUCCESS- 操作成功IRISCTL_ERROR- 一般错误IRISCTL_INVALID_COMMAND- 命令参数无效IRISCTL_INVALID_CONFIGURATION- 未定义的配置IRISCTL_CONTROL_STU_ERROR-^STU失败
注意:在 Windows NT 上,指定的配置必须正在运行。如果不确定配置是否正在运行,请使用 IRISctlConfigStatus 和 IRISctlControl 检查并启动所需的配置。这可以防止 IRIS 在不使用控制服务的情况下尝试启动配置。
IRISctlRunIO
在指定的配置和命名空间中启动 IRIS 进程,使用指定的主要 I/O 设备类型,为输入、输出和错误设备调用指定的例程和附加 IO 规范。
Syntax
IRISctlRunIO(
char *config,
char *routine,
char *namespace,
char *IOtype,
HANDLE *hIO,
char *cwd,
char *options,
HANDLE *child,
DWORD *childPID))
config-运行配置的名称,全部大写。routine- 要启动的所需例程的名称。namespace- 所需命名空间的名称。IOtype-I/O是如何处理的,它的值必须是TCP,因为该进程使用TCP套接字。hIO- 子进程的工作目录路径。如果目录参数为零,则使用当前进程的工作目录。option- 额外的irisdb.exe命令行选项附加到生成的命令行。例如,可以定义更大的进程内存大小 (-b 1024)。child- 指向HANDLE类型变量的指针,其中将返回子进程的句柄。如果handle的值为零,则此函数将关闭子进程的句柄。childPID- 指向创建的irisdb.exe进程的PID的指针。如果不需要孩子的PID,则此参数可以为零。
Return Values
IRISCTL_SUCCESS- 操作成功IRISCTL_ERROR- 一般错误IRISCTL_INVALID_COMMAND- 命令参数无效IRISCTL_INVALID_CONFIGURATION- 未定义的配置IRISCTL_CONTROL_STU_ERROR-^ST失败
注意:hIOarray 中的句柄必须是可继承的。使用 DuplicateHandle 使句柄可由子进程继承。
在 Windows NT 上,指定的配置必须正在运行。如果不确定配置是否正在运行,请使用 IRISctlConfigStatus 和 IRISctlControl 检查并启动所需的配置。这可以防止 IRIS 在不使用控制服务的情况下尝试启动配置。