2024 年 PHP Conference Japan

預定義常數

以下常數由此擴充套件定義,並且只有在擴充套件已編譯到 PHP 中或在執行階段動態載入時才會可用。

Win32Service 服務類型位元遮罩
常數 說明
WIN32_SERVICE_WIN32_OWN_PROCESS 0x00000010 服務在其自己的流程中執行。
WIN32_SERVICE_INTERACTIVE_PROCESS 0x00000100 服務可以與桌面互動。此選項在 Windows Vista 或更高版本上不可用。
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE 0x00000110 此服務在其自身的進程中運行,並且可以與桌面互動。此選項在 Windows Vista 或更高版本中不可用。
Win32 服務狀態常數
常數 說明
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 服務未運行。
Win32 服務控制訊息常數
常數 說明
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 通知服務應停止。
Win32 服務控制訊息接受位元遮罩 (Bitmasks)
常數 說明
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