PHP 大会日本 2024

预定义常量

以下常量由此扩展定义,并且只有在扩展已编译到 PHP 中或在运行时动态加载时才可用。

Win32Service 服务类型位掩码
常量 描述
WIN32_SERVICE_WIN32_OWN_PROCESS 0x00000010 服务在其自己的进程中运行。
WIN32_SERVICE_INTERACTIVE_PROCESS 0x00000100 服务可以与桌面交互。此选项在 Windows Vista 或更高版本上不可用。
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE 0x00000110 服务在其自己的进程中运行,并且可以与桌面交互。此选项在 Windows Vista 或更高版本上不可用。
Win32Service 服务状态常量
常量 描述
WIN32_SERVICE_CONTINUE_PENDING 0x00000005 服务继续挂起。
WIN32_SERVICE_PAUSE_PENDING 0x00000006 服务暂停挂起。
WIN32_SERVICE_PAUSED 0x00000007 服务已暂停。
WIN32_SERVICE_RUNNING 0x00000004 服务正在运行。
WIN32_SERVICE_START_PENDING 0x00000002 服务正在启动。
WIN32_SERVICE_STOP_PENDING 0x00000003 服务正在停止。
WIN32_SERVICE_STOPPED 0x00000001 服务未运行。
Win32Service 服务控制消息常量
常量 描述
WIN32_SERVICE_CONTROL_CONTINUE 0x00000003 通知已暂停的服务应恢复。
WIN32_SERVICE_CONTROL_DEVICEEVENT 0x0000000B
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE 0x0000000C
WIN32_SERVICE_CONTROL_INTERROGATE 0x00000004 通知服务应将其当前状态信息报告给服务控制管理器。
WIN32_SERVICE_CONTROL_NETBINDADD 0x00000007 通知网络服务有新的组件要绑定。
WIN32_SERVICE_CONTROL_NETBINDDISABLE 0x0000000A 通知网络服务其绑定之一已被禁用。
WIN32_SERVICE_CONTROL_NETBINDENABLE 0x00000009 通知网络服务已禁用的绑定已启用。
WIN32_SERVICE_CONTROL_NETBINDREMOVE 0x00000008 通知网络服务要绑定的组件已被删除。
WIN32_SERVICE_CONTROL_PARAMCHANGE 0x00000006 通知服务其启动参数已更改。
WIN32_SERVICE_CONTROL_PAUSE 0x00000002 通知服务应暂停。
WIN32_SERVICE_CONTROL_POWEREVENT 0x0000000D
WIN32_SERVICE_CONTROL_PRESHUTDOWN 0x0000000F 通知服务系统将要关闭。处理此通知的服务会阻止系统关闭,直到服务停止或预关闭超时间隔过期。Windows Server 2003 和 Windows XP/2000 不支持此值。
WIN32_SERVICE_CONTROL_SESSIONCHANGE 0x0000000E
WIN32_SERVICE_CONTROL_SHUTDOWN 0x00000005 通知服务系统正在关闭,以便服务可以执行清理任务。如果服务接受此控制代码,则必须在执行清理任务后停止。SCM 发送此控制代码后,将不会向服务发送其他控制代码。
WIN32_SERVICE_CONTROL_STOP 0x00000001 通知服务应停止。
Win32Service 服务控制消息接受位掩码
常量 描述
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE 0x00000020 当计算机的硬件配置文件发生更改时,会通知服务。这使系统能够向服务发送WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE通知。
WIN32_SERVICE_ACCEPT_NETBINDCHANGE 0x00000010 服务是网络组件,可以在其绑定发生更改时接受更改,而无需停止和重新启动。此控制代码允许服务接收WIN32_SERVICE_CONTROL_NETBINDADDWIN32_SERVICE_CONTROL_NETBINDREMOVEWIN32_SERVICE_CONTROL_NETBINDENABLEWIN32_SERVICE_CONTROL_NETBINDDISABLE通知。
WIN32_SERVICE_ACCEPT_PARAMCHANGE 0x00000008 服务可以在不停止和重新启动的情况下重新读取其启动参数。此控制代码允许服务接收WIN32_SERVICE_CONTROL_PARAMCHANGE通知。
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE 0x00000002 服务可以暂停和继续。此控制代码允许服务接收WIN32_SERVICE_CONTROL_PAUSEWIN32_SERVICE_CONTROL_CONTINUE通知。
WIN32_SERVICE_ACCEPT_POWEREVENT 0x00000040 当计算机的电源状态发生更改时,会通知服务。这使系统能够向服务发送WIN32_SERVICE_CONTROL_POWEREVENT通知。
WIN32_SERVICE_ACCEPT_PRESHUTDOWN 0x00000100 服务可以执行预关闭任务。此控制代码使服务能够接收WIN32_SERVICE_CONTROL_PRESHUTDOWN通知。Windows Server 2003 和 Windows XP/2000 不支持此值。
WIN32_SERVICE_ACCEPT_SESSIONCHANGE 0x00000080 当计算机的会话状态发生更改时,会通知服务。这使系统能够向服务发送WIN32_SERVICE_CONTROL_SESSIONCHANGE通知。Windows 2000:不支持此值
WIN32_SERVICE_ACCEPT_SHUTDOWN 0x00000004 当系统关闭发生时,会通知服务。此控制代码允许服务接收WIN32_SERVICE_CONTROL_SHUTDOWN通知。
WIN32_SERVICE_ACCEPT_STOP 0x00000001 服务可以停止。此控制代码允许服务接收WIN32_SERVICE_CONTROL_STOP通知。
WIN32_SERVICE_ACCEPT_TIMECHANGE 0x00000200 当系统时间发生更改时,会通知服务。这使系统能够向服务发送WIN32_SERVICE_CONTROL_TIMECHANGE通知。Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP/2000:不支持此控制代码。
WIN32_SERVICE_ACCEPT_TRIGGEREVENT 0x00000400 当服务已注册的事件发生时,会通知服务。这使系统能够向服务发送WIN32_SERVICE_CONTROL_TRIGGEREVENT通知。Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP/2000:不支持此控制代码。
Win32Service 服务启动类型常量
常量 描述
WIN32_SERVICE_BOOT_START 0x00000000 由系统加载程序启动的设备驱动程序。此值仅对驱动程序服务有效。
WIN32_SERVICE_SYSTEM_START 0x00000001 由 IoInitSystem 函数启动的设备驱动程序。此值仅对驱动程序服务有效。
WIN32_SERVICE_AUTO_START 0x00000002 在系统启动期间由服务控制管理器自动启动的服务。
WIN32_SERVICE_DEMAND_START 0x00000003 当进程调用 StartService 函数时,由服务控制管理器启动的服务。
WIN32_SERVICE_DISABLED 0x00000004 无法启动的服务。尝试启动服务会导致错误代码WIN32_ERROR_SERVICE_DISABLED
Win32Service 服务错误控制常量
常量 描述
WIN32_SERVICE_ERROR_IGNORE 0x00000000 启动程序忽略错误并继续启动操作。
WIN32_SERVICE_ERROR_NORMAL 0x00000001 启动程序将错误记录到事件日志中,但继续启动操作。
WIN32_SERVICE_ERROR_SEVERE 0x00000002 启动程序将错误记录到事件日志中。如果正在启动最后已知良好的配置,则启动操作将继续。否则,系统将使用最后已知良好的配置重新启动。
WIN32_SERVICE_ERROR_CRITICAL 0x00000003 启动程序尽可能将错误记录到事件日志中。如果正在启动最后已知良好的配置,则启动操作将失败。否则,系统将使用最后已知良好的配置重新启动。
Win32Service 服务标志常量
常量 描述
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS 0x00000001 服务在必须始终运行的系统进程中运行。

注意:

从 Win32Service 1.0.0 开始,这些常量不再使用。

Win32 错误代码
常量 描述
WIN32_ERROR_ACCESS_DENIED 0x00000005 SCM 数据库的句柄没有相应的访问权限。
WIN32_ERROR_CIRCULAR_DEPENDENCY 0x00000423 指定了循环服务依赖项。
WIN32_ERROR_DATABASE_DOES_NOT_EXIST 0x00000429 指定的数据库不存在。
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING 0x0000041B 无法停止服务,因为其他正在运行的服务依赖于它。
WIN32_ERROR_DUPLICATE_SERVICE_NAME 0x00000436 显示名称已存在于服务控制管理器数据库中,作为服务名称或其他显示名称。
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 0x00000427 如果程序作为控制台应用程序而不是作为服务运行,则会返回此错误。如果程序将作为控制台应用程序运行以进行调试,请将其结构化,以便不调用特定于服务的服务代码。
WIN32_ERROR_INSUFFICIENT_BUFFER 0x0000007A 缓冲区对于服务状态结构太小。没有内容写入结构。
WIN32_ERROR_INVALID_DATA 0x0000000D 指定的服务状态结构无效。
WIN32_ERROR_INVALID_HANDLE

0x00000006 指定的服务控制管理器数据库的句柄无效。
WIN32_ERROR_INVALID_LEVEL 0x0000007C InfoLevel 参数包含不支持的值。
WIN32_ERROR_INVALID_NAME 0x0000007B 指定的服务名称无效。
WIN32_ERROR_INVALID_PARAMETER 0x00000057 指定的参数无效。
WIN32_ERROR_INVALID_SERVICE_ACCOUNT 0x00000421 user 参数中指定的用户名不存在。请参阅 win32_create_service()
WIN32_ERROR_INVALID_SERVICE_CONTROL 0x0000041C 请求的控制代码无效,或服务无法接受。
WIN32_ERROR_PATH_NOT_FOUND 0x00000003 找不到服务二进制文件。
WIN32_ERROR_SERVICE_ALREADY_RUNNING 0x00000420 服务实例已经在运行。
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL 0x00000425 无法将请求的控制代码发送到服务,因为服务的状态为 WIN32_SERVICE_STOPPEDWIN32_SERVICE_START_PENDINGWIN32_SERVICE_STOP_PENDING
WIN32_ERROR_SERVICE_DATABASE_LOCKED 0x0000041F 数据库已锁定。
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED 0x00000433 该服务依赖于一个不存在或已标记为删除的服务。
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL 0x0000042C 该服务依赖于另一个服务,而该服务启动失败。
WIN32_ERROR_SERVICE_DISABLED 0x00000422 该服务已被禁用。
WIN32_ERROR_SERVICE_DOES_NOT_EXIST 0x00000424 指定的服务不存在于已安装的服务中。
WIN32_ERROR_SERVICE_EXISTS 0x00000431 该服务已存在于此数据库中。
WIN32_ERROR_SERVICE_LOGON_FAILED 0x0000042D 服务由于登录失败而未启动。如果服务配置为在没有“以服务身份登录”权限的帐户下运行,则会发生此错误。
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE 0x00000430 指定的服务已标记为删除。
WIN32_ERROR_SERVICE_NO_THREAD 0x0000041E 无法为服务创建线程。
WIN32_ERROR_SERVICE_NOT_ACTIVE 0x00000426 服务尚未启动。
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT 0x0000041D 已启动服务的进程,但它没有调用 StartServiceCtrlDispatcher,或者调用 StartServiceCtrlDispatcher 的线程可能在控制处理程序函数中被阻塞。
WIN32_ERROR_SHUTDOWN_IN_PROGRESS 0x0000045B 系统正在关闭;无法调用此函数。
WIN32_ERROR_SERVICE_SPECIFIC_ERROR 0x0000042A 服务已返回特定于服务的错误代码。
WIN32_NO_ERROR 0x00000000 没有错误。
Win32 基本优先级类别
常量 描述
WIN32_ABOVE_NORMAL_PRIORITY_CLASS 0x00008000 优先级高于 WIN32_NORMAL_PRIORITY_CLASS 但低于 WIN32_HIGH_PRIORITY_CLASS 的进程。
WIN32_BELOW_NORMAL_PRIORITY_CLASS 0x00004000 优先级高于 WIN32_IDLE_PRIORITY_CLASS 但低于 WIN32_NORMAL_PRIORITY_CLASS 的进程。
WIN32_HIGH_PRIORITY_CLASS 0x00000080 执行必须立即执行的时间关键任务的进程。该进程的线程抢占正常或空闲优先级类别进程的线程。例如,任务列表必须在用户调用时快速响应,而不管操作系统上的负载如何。在使用高优先级类别时要格外小心,因为高优先级类别应用程序可以使用几乎所有可用的 CPU 时间。
WIN32_IDLE_PRIORITY_CLASS 0x00000040 其线程仅在系统空闲时运行的进程。该进程的线程被任何以更高优先级类别运行的进程的线程抢占。例如,屏幕保护程序。空闲优先级类别由子进程继承。
WIN32_NORMAL_PRIORITY_CLASS 0x00000020 没有特殊调度需求的进程。
WIN32_REALTIME_PRIORITY_CLASS 0x00000100 具有最高优先级的进程。该进程的线程抢占所有其他进程的线程,包括执行重要任务的操作系统进程。例如,执行超过非常短时间间隔的实时进程会导致磁盘缓存不刷新或鼠标无响应。
Win32 恢复操作
常量 描述
WIN32_SC_ACTION_NONE 0x00000000 无操作。
WIN32_SC_ACTION_RESTART 0x00000001 重新启动服务。
WIN32_SC_ACTION_REBOOT 0x00000002 重新启动服务器。
WIN32_SC_ACTION_RUN_COMMAND 0x00000003 运行命令。
Win32 服务信息
常量 描述
WIN32_INFO_SERVICE "service"
WIN32_INFO_DISPLAY "display"
WIN32_INFO_USER "user"
WIN32_INFO_PASSWORD "password"
WIN32_INFO_PATH "path"
WIN32_INFO_PARAMS "params"
WIN32_INFO_DESCRIPTION "description"
WIN32_INFO_START_TYPE "start_type"
WIN32_INFO_LOAD_ORDER "load_order"
WIN32_INFO_SVC_TYPE "svc_type"
WIN32_INFO_ERROR_CONTROL "error_control"
WIN32_INFO_DELAYED_START "delayed_start"
WIN32_INFO_BASE_PRIORITY "base_priority"
WIN32_INFO_DEPENDENCIES "dependencies"
WIN32_INFO_RECOVERY_DELAY "recovery_delay"
WIN32_INFO_RECOVERY_ACTION_1 "recovery_action_1"
WIN32_INFO_RECOVERY_ACTION_2 "recovery_action_2"
WIN32_INFO_RECOVERY_ACTION_3 "recovery_action_3"
WIN32_INFO_RECOVERY_RESET_PERIOD "recovery_reset_period"
WIN32_INFO_RECOVERY_ENABLED "recovery_enabled"
WIN32_INFO_RECOVERY_REBOOT_MSG "recovery_reboot_msg"
WIN32_INFO_RECOVERY_COMMAND "recovery_command"
Win32 服务权限
常量 描述
WIN32_SERVICE_ALL_ACCESS 0x000F003F
WIN32_SERVICE_CHANGE_CONFIG 0x00000002
WIN32_SERVICE_ENUMERATE_DEPENDENTS 0x00000008
WIN32_SERVICE_INTERROGATE 0x00000080
WIN32_SERVICE_PAUSE_CONTINUE 0x00000040
WIN32_SERVICE_QUERY_CONFIG 0x00000001
WIN32_SERVICE_QUERY_STATUS 0x00000004
WIN32_SERVICE_START 0x00000010
WIN32_SERVICE_STOP 0x00000020
WIN32_SERVICE_USER_DEFINED_CONTROL 0x00000100
WIN32_ACCESS_SYSTEM_SECURITY 0x00001000
WIN32_DELETE 0x00010000
WIN32_READ_CONTROL 0x00020000
WIN32_WRITE_DAC 0x00040000
WIN32_WRITE_OWNER 0x00080000
WIN32_GENERIC_READ 包含权限:WIN32_STANDARD_RIGHTS_READWIN32_SERVICE_QUERY_CONFIGWIN32_SERVICE_QUERY_STATUSWIN32_SERVICE_INTERROGATEWIN32_SERVICE_ENUMERATE_DEPENDENTS
WIN32_GENERIC_WRITE 包含权限:WIN32_STANDARD_RIGHTS_WRITEWIN32_SERVICE_CHANGE_CONFIG
WIN32_GENERIC_EXECUTE 包含权限:WIN32_STANDARD_RIGHTS_EXECUTEWIN32_SERVICE_STARTWIN32_SERVICE_STOPWIN32_SERVICE_PAUSE_CONTINUEWIN32_SERVICE_USER_DEFINED_CONTROL
添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top