Python win32serviceutil QueryServiceStatus:return 值是什么意思?

Python win32serviceutil QueryServiceStatus: What does the return value mean?

我正在学习使用 pywin32,并且正在尝试在 64 位上使用 win32serviceutil 模块 Python 3.6.4

以下代码:

import win32serviceutil as service
serviceStatus = service.QueryServiceStatus("WinDefend")
print(serviceStatus)

Returns 以下元组:

(16, 4, 197, 0, 0, 0, 0)

我对 windows api 和 pywin32 完全陌生,这 6 个值是什么意思?关于 pywin32 和 win32 的任何文档都没有透露任何内容。

编辑 - 我是 运行 Windows 10

你得到了SERVICE_STATUS结构

具体值表示下一个:

dwServiceType=SERVICE_WIN32_OWN_PROCESS(16)
dwCurrentState=SERVICE_RUNNING(4)
dwControlsAccepted=SERVICE_ACCEPT_SESSIONCHANGE|SERVICE_ACCEPT_POWEREVENT|SERVICE_ACCEPT_SHUTDOWN|SERVICE_ACCEPT_STOP (0xc5==197)
dwWin32ExitCode=NO_ERROR (0)
dwServiceSpecificExitCode=0 // This value is ignored because dwWin32ExitCode != ERROR_SERVICE_SPECIFIC_ERROR.
dwCheckPoint=0
dwWaitHint=0

win32serviceutil[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) Extensions 的一部分,它是 Python 包装器 WINAPIs.

  • [ActiveState.Docs]: win32service.QueryServiceStatus (this is the closest that I could find of an official PyWin32 doc) is an wrapper over [MS.Docs]: QueryServiceStatus function and returns an [ActiveState.Docs]: SERVICE_STATUS Object(元组)

    Items:
    [0] int : serviceType
            The type of service.
    [1] int : serviceState
            The current state of the service.
    [2] int : controlsAccepted
            The controls the service accepts.
    [3] int : win32ExitCode
            The win32 error code for the service.
    [4] int : serviceSpecificErrorCode
            The service specific error code.
    [5] int : checkPoint
            The checkpoint reported by the service.
    [6] int : waitHint
            The wait hint reported by the service.
    
  • win32serviceutil.QueryServiceStatus 是前一个的 shorthand(它封装了所有其他涉及的调用:win32service.OpenSCManagerwin32service.OpenServicewin32service.CloseServiceHandle) 和returns一样