网站首页  词典首页

请输入您要查询的函数:

 

术语 handler
释义 Handler
语法:
C++
VOID WINAPI Handler(
__in DWORD fdwControl
);
处理回调函数
一个应用程序定义的回调函数与RegisterServiceCtrlHandler函数使用。一个服务程序可以使用特定服务控制处理程序函数。
在LPHANDLER_FUNCTION类型定义一个指向此功能。处理程序是应用程序的占位符定义的名称。
这个职能已取代了HandlerEx控制处理功能与RegisterServiceCtrlHandlerEx使用功能。一个服务可以使用控制处理程序,但新的控制处理程序支持用户定义的上下文数据的和额外的扩展的控制代码。
参数
fdwControl [in]
控制代码。此参数可以是下列值之一。
控制codeMeaning
SERVICE_CONTROL_CONTINUE
0x00000003Notifies已暂停服务,它应该恢复。
SERVICE_CONTROL_INTERROGATE
0x00000004Notifies服务,它应报告其当前的状态信息服务控制管理器。
处理程序应该简单地返回NO_ERROR,在供应链管理是对服务的当前状态认识。
SERVICE_CONTROL_NETBINDADD
0x00000007Notifies的网络服务是有约束力的新的组成部分。该服务应绑定到新的组件。
应用程序应该使用即插即用功能代替。
SERVICE_CONTROL_NETBINDDISABLE
0x0000000ANotifies网络服务,其绑定一个已被禁用。该服务应重读其绑定信息和删除具有约束力。
应用程序应该使用即插即用功能代替。
SERVICE_CONTROL_NETBINDENABLE
0x00000009Notifies网络服务,弱能约束力已被启用。该服务应重读其绑定信息和添加新的具有约束力。
应用程序应该使用即插即用功能代替。
SERVICE_CONTROL_NETBINDREMOVE
0x00000008Notifies的网络服务,一个有约束力的组成部分已被删除。重读的服务应该从消除组件的绑定信息和unbind。
应用程序应该使用即插即用功能代替。
SERVICE_CONTROL_PARAMCHANGE
0x00000006Notifies一,它的启动参数已经改变了服务。该服务应重读其启动参数。
SERVICE_CONTROL_PAUSE
0x00000002Notifies一种服务,它应该暂停。
SERVICE_CONTROL_SHUTDOWN
0x00000005Notifies的服务,该系统正在关闭这样的服务可以执行清除任务。
如果服务接受这一控制代码,它必须停止执行后,其清理任务并返回NO_ERROR。单片机发送后,这个控制代码,它将不会发出其他控制代码的服务。
有关更多信息,请参见备注。
SERVICE_CONTROL_STOP
0x00000001Notifies一种服务,它应该停止。
如果服务接受这一控制代码,它必须停止在收到并返回NO_ERROR。单片机发送后,这个控制代码,它不会发送其他控制代码。
Windows XP/2000操作系统:如果服务返回NO_ERROR并继续运行,它继续得到控制代码。开始更改此行为与Windows Server 2003和Windows XP SP2的。
此参数也可以是一个用户定义的控制代码,如下表所述。
控制codeMeaning
范围128 255.The服务定义与控制代码相关联的行动。
返回值
这个函数没有返回值。
备注
当服务启动时,它的ServiceMain函数应立即调用RegisterServiceCtrlHandler函数指定一个处理函数过程控制的要求。
在一个服务进程的主线程控制调度调用指定服务的控制处理功能只要它接收从服务控制管理器控制的要求。处理后的控制要求,控制处理程序必须调用SetServiceStatus函数如果服务状态改变报告其新的地位的服务控制管理器。
控制处理功能主要是为了接收通知,并立即返回。因此,最好是回调函数保存其参数,并创建其他线程执行其他工作。您的应用程序必须确保这些线程停止服务前退出。
当服务控制管理器控制代码发送到服务,它等待返回发送之前额外控制代码的其他服务处理函数。控制处理程序必须在30秒内返回的供应链管理或返回一个错误。如果服务必须做冗长的处理时,服务控制处理程序执行,应建立一个辅助线程来执行长时间的加工,然后返回的控制处理。这可以防止绑管制的调度和阻止接收控制码的其他服务的服务。
控制代码的SERVICE_CONTROL_SHUTDOWN只应处理的服务,必须绝对干净,在关机时,因为有一个有限的时间(约20秒)可用于服务关闭。过了这段时间到期时,系统关闭的收益,不论是完整的服务关闭。请注意,如果系统在关机的状态(不重新启动或关机),服务继续运行。
如果服务需要更多的时间来清理,它应STOP_PENDING状态消息,伴随着等待提示,因此,服务控制器知道要等待多久报告之前的系统的服务关闭就完成了。然而,为了防止关机停止服务,有多久服务控制器限制将等待。如果该服务被关闭了通过服务管理单元中,限额为125秒。如果操作系统是重新启动,在指定的时限在以下注册表项WaitToKillServiceTimeout的值:
HKEY_LOCAL_MACHINE \\系统\\ CurrentControlSet \\控制
服务还可以使用SetConsoleCtrlHandler函数以接收关闭通知。收到此通知时,正在运行的应用程序关闭,它发生服务之前关闭。
实例
For an example, see Writing a Control Handler Function .
要求:
最低支持:client-Windows 2000专业版
最低支持server-Windows 2000服务器
HeaderWinsvc.h(头文件:winuser.h)
参见
HandlerEx
RegisterServiceCtrlHandler
服务控制处理函数
服务函数
ServiceMain
SetServiceStatus
如果有任何问题和意见,请发送给微软(wsddocfb@microsoft.com)
生成日期:2009年8月27日
==英文原文==Handler Callback Function
An application-defined callback function used with the RegisterServiceCtrlHandler function. A service program can use it as the control handler function of a particular service.
The LPHANDLER_FUNCTION type defines a pointer to this function. Handler is a placeholder for the application-defined name.
This function has been superseded by the HandlerEx control handler function used with the RegisterServiceCtrlHandlerEx function. A service can use either control handler, but the new control handler supports user-defined context data and additional extended control codes.
Syntax
C++
VOID WINAPI Handler(
__in DWORD fdwControl
);
Parameters
fdwControl [in]
The control code. This parameter can be one of the following values.
Control codeMeaning
SERVICE_CONTROL_CONTINUE
0x00000003Notifies a paused service that it should resume.
SERVICE_CONTROL_INTERROGATE
0x00000004Notifies a service that it should report its current status information to the service control manager.
The handler should simply return NO_ERROR; the SCM is aware of the current state of the service.
SERVICE_CONTROL_NETBINDADD
0x00000007Notifies a network service that there is a new component for binding. The service should bind to the new component.
Applications should use Plug and Play functionality instead.
SERVICE_CONTROL_NETBINDDISABLE
0x0000000ANotifies a network service that one of its bindings has been disabled. The service should reread its binding information and remove the binding.
Applications should use Plug and Play functionality instead.
SERVICE_CONTROL_NETBINDENABLE
0x00000009Notifies a network service that a disabled binding has been enabled. The service should reread its binding information and add the new binding.
Applications should use Plug and Play functionality instead.
SERVICE_CONTROL_NETBINDREMOVE
0x00000008Notifies a network service that a component for binding has been removed. The service should reread its binding information and unbind from the removed component.
Applications should use Plug and Play functionality instead.
SERVICE_CONTROL_PARAMCHANGE
0x00000006Notifies a service that its startup parameters have changed. The service should reread its startup parameters.
SERVICE_CONTROL_PAUSE
0x00000002Notifies a service that it should pause.
SERVICE_CONTROL_SHUTDOWN
0x00000005Notifies a service that the system is shutting down so the service can perform cleanup tasks.
If a service accepts this control code, it must stop after it performs its cleanup tasks and return NO_ERROR. After the SCM sends this control code, it will not send other control codes to the service.
For more information, see Remarks.
SERVICE_CONTROL_STOP
0x00000001Notifies a service that it should stop.
If a service accepts this control code, it must stop upon receipt and return NO_ERROR. After the SCM sends this control code, it does not send other control codes.
Windows XP/2000: If the service returns NO_ERROR and continues to run, it continues to receive control codes. This behavior changed starting with Windows Server 2003 and Windows XP with SP2.

This parameter can also be a user-defined control code, as described in the following table.
Control codeMeaning
Range 128 to 255.The service defines the action associated with the control code.

Return Value
This function does not return a value.
Remarks
When a service is started, its ServiceMain function should immediately call the RegisterServiceCtrlHandler function to specify a Handler function to process control requests.
The control dispatcher in the main thread of a service process invokes the control handler function for the specified service whenever it receives a control request from the service control manager. After processing the control request, the control handler must call the SetServiceStatus function if the service state changes to report its new status to the service control manager.
The control handler function is intended to receive notification and return immediately. Therefore, it is best if the callback function saves its parameters and creates other threads to perform additional work. Your application must ensure that such threads have exited before stopping the service.
When the service control manager sends a control code to a service, it waits for the handler function to return before sending additional control codes to other services. The control handler must return within 30 seconds or the SCM returns an error. If a service must do lengthy processing when the service is executing the control handler, it should create a secondary thread to perform the lengthy processing, and then return from the control handler. This prevents the service from tying up the control dispatcher and blocking other services from receiving control codes.
The SERVICE_CONTROL_SHUTDOWN control code should only be processed by services that must absolutely clean up during shutdown, because there is a limited time (about 20 seconds) available for service shutdown. After this time expires, system shutdown proceeds regardless of whether service shutdown is complete. Note that if the system is left in the shutdown state (not restarted or powered down), the service continues to run.
If the service requires more time to clean up, it should send STOP_PENDING status messages, along with a wait hint, so the service controller knows how long to wait before reporting to the system that service shutdown is complete. However, to prevent a service from stopping shutdown, there is a limit to how long the service controller will wait. If the service is being shut down through the Services snap-in, the limit is 125 seconds. If the operating system is rebooting, the time limit is specified in the WaitToKillServiceTimeout value of the following registry key:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control
Services can also use the SetConsoleCtrlHandler function to receive shutdown notification. This notification is received when the running applications are shutting down, which occurs before services are shut down.
Examples
For an example, see Writing a Control Handler Function .
Requirements
Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderWinsvc.h (include Windows.h)
See Also
HandlerEx
RegisterServiceCtrlHandler
Service Control Handler Function
Service Functions
ServiceMain
SetServiceStatus
Send comments about this topic to Microsoft
Build date: 8/27/2009
==原始网址==http://msdn.microsoft.com/en-us/library/ms683240(VS.85).aspx\n
随便看

 

windows api函数参考手册包含2258条windows api函数文档,详细介绍nodejs、java、rust调用windows api的方法技巧,是学习windows api编程的入门中文文档。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 13:24:03