RegisterServiceCtrlHandlerEx

[Win32] 服务程序开发(1)基本概念和服务程序的框架 一。服务程序基本概念 二。服务程序的编写框架 1。StartServiceCtrlDispatcher函数 BOOL WINAPI StartServiceCtrlDispatcher( _In_ const SERVICE_TABLE_ENTRY *lpServiceTable ); 函数功能:连接到服务控制管理器 参数:一个SERVICE_TABLE_ENTRY结构的指针 阅读详情

RegisterServiceCtrlHandlerEx

A service calls the RegisterServiceCtrlHandlerEx function to register a function to handle its service control requests.

This function supersedes the RegisterServiceCtrlHandler function. A service can use either function, but the new function supports user-defined context data, and the new handler function supports additional extended control codes.

SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerEx(
  LPCTSTR lpServiceName,
  LPHANDLER_FUNCTION_EX lpHandlerProc,
  LPVOID lpContext
);
Parameters
lpServiceName
[in] Pointer to a null-terminated string that specifies the name of the service run by the calling thread. This is the service name that the service control program specified in the CreateService function when creating the service.
lpHandlerProc
[in] Pointer to the handler function to be registered. For more information, see HandlerEx.
lpContext
[in] User-defined data. This parameter, which is passed to the handler function, can help identify the service when multiple services share a process.
Return Values

If the function succeeds, the return value is a service status handle.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

The following error codes can be set by the service control manager. Other error codes can be set by the registry functions that are called by the service control manager.

Return codeDescription
ERROR_INVALID_NAMEThe specified service name is invalid.
ERROR_SERVICE_DOES_NOT_EXISTThe specified service does not exist.
Remarks

The ServiceMain function of a new service should immediately call the RegisterServiceCtrlHandlerEx function to register a control handler function with the control dispatcher. This enables the control dispatcher to invoke the specified function when it receives control requests for this service. The threads of the calling process can use the service status handle returned by this function to identify the service in subsequent calls to the SetServiceStatus function.

The RegisterServiceCtrlHandlerEx function must be called before the first SetServiceStatus call because RegisterServiceCtrlHandlerEx returns a service status handle for the caller to use so that no other service can inadvertently set this service status. In addition, the control handler must be in place to receive control requests by the time the service specifies the controls it accepts through the SetServiceStatus function.

When the control handler function is invoked with a control request, it must call SetServiceStatus to notify the service control manager of its current status, regardless of whether the status of the service has changed.

The service status handle does not have to be closed.

Requirements
ClientRequires Windows XP or Windows 2000 Professional.
ServerRequires Windows Server 2003 or Windows 2000 Server.
Header

Declared in Winsvc.h; include Windows.h.

Library

Link to Advapi32.lib.

DLLRequires Advapi32.dll.
Unicode

Implemented as RegisterServiceCtrlHandlerExW (Unicode) and RegisterServiceCtrlHandlerExA (ANSI).

ABB变频器使用PROFINET IO通信模块时的激活方法 阅读详情

相关推荐

高速设计注意事项总结——MDI篇

在以太网高速通信系统中,MDI(Medium Dependent Interface,介质相关接口)是连接物理层芯片(PHY)与传输介质(如网线)的关键接口,其设计直接影响信号完整性、传输速率和抗干扰能力。本文围绕 MDI 及 RJ45 接口电路、关键参数、设计与布线要点展开,为高速以太网设计提供参考。本文包含MDI 及 RJ45 接口电路组成、电路设计注意事项、布局布线要求等内容

qq_16237389的博客 1450

RegisterServiceCtrlHandler

RegisterServiceCtrlHandlerA service calls the RegisterServiceCtrlHandler function to register a function to handle its service control requests.This function has been superseded by the RegisterService

小发猫 6040

出个AI8051U的PWM例程 | 3相互补SPWM变频驱动,PWMA-3个相位差120度的PWM互补输出

通道2输出: P2.2, PWMA2P输出, P2.3, PWMA2N输出, PWMA2相对PWMA1滞后120度相位.通道3输出: P2.4, PWMA3P输出, P2.5, PWMA3N输出, PWMA3相对PWMA1滞后240度相位.先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选择主频24MHz.主频32.768MHz, PWM周期1422, 刷新频率23040Hz,死区0.5us,通道1输出: P2.0, PWMA1P输出, P2.1, PWMA1N输出。

USB_CAN_8051的博客 691

《Windows核心编程》---Windows服务

Windows服务(Services),是一些运行在WindowsNT、Windows2000和Windows XP等操作系统下用户环境以外的程序。它不同于一般的可执行程序,不需要系统登录便可以运行,以完成某些特定的功能。服务提供了管理能力,可以将后台程序转换成服务,然后就可以用命令或者在系统启动用户登录之前启动,并且也可以暂停、恢复和终止。服务信息在注册表中维护。为了能够在系统中正确运行,在创建一个服务时必须接受一些特殊的规则,最重要的一点是:必须在目标系统中安装并且注册该Service。此外,基于用户界

ASCE1885 2701

使用Matlab进行IEEE 33节点潮流计算的NR法实现详解及应用实例

IEEE 33节点系统是一个标准的配电系统模型,广泛用于学术研究和工程应用。该系统由33个节点和37条线路组成,结构复杂,具有代表性。其潮流计算结果可用于验证各种潮流计算方法的准确性和效率。NR法是一种基于迭代求解的潮流计算方法,通过不断迭代求解非线性方程组,直到达到预定的收敛条件。NR法具有收敛速度快、计算精度高的优点,适用于大规模复杂电力系统的潮流计算。

m0_57781768的博客 2071

磁编码器选型避坑指南:为什么MT6816比霍尔传感器更适合你的伺服系统?

本文深入对比了MT6816磁编码器与传统霍尔传感器在伺服系统中的应用。MT6816基于AMR技术,对磁场方向敏感而非强度,具备高精度、强抗干扰、高安装容差和极低延时等优势,尤其适合高转速、恶劣环境下的工业场景,能有效提升系统可靠性与长期稳定性。

rainy的博客 1104

50.服务程序SERVICE_STATUS、SERVICE_STATUS_HANDLE、RegisterServiceCtrlHandler、SetServiceStatus、SERVICE_TABL

开始之前,先了解几个结构体 SERVICE_STATUS 是服务状态机构,用于标记服务的状态 typedef struct _SERVICE_STATUS { DWORD dwServiceType; //服务可执行文件的类型 DWORD dwCurrentState; DWORD dwControlsAccepted; DWORD dwWin32E...

单于的学习历程 3050

从NASA官网到分析图:MOD09A1地表反射率数据的完整处理流程(含QC筛选)

本文详细介绍了MOD09A1地表反射率数据的完整处理流程,从NASA官网数据下载到QC筛选,再到NDVI图生成。特别强调了质量控制(QC)信息在筛选可靠像元中的关键作用,帮助研究人员获取高质量遥感数据。

weixin_42542669的博客 111

2-Windows服务之相关API说明

它将等待一个服务完成对服务控制通知的处理,然后再发送下一个服务控制通知。在32位机器上,如果设置了服务依赖(例如:lpDependencies参数设置为Tcpip),则lpLoadOrderGroup参数不能设置为NULL,而需要设置为“”空字符串,否则函数会报错,GetLastError()返回1059(指定了循环服务依赖关系),原因未知。ControlService函数要求SCM发送指定的控制码给服务,如果服务已指定将接受代码,并且处于可以向其发送控制码的状态,则SCM将发送指定的控制码。

weixin_40332490的博客 1215

【unity】Google 登录和Google支付接入unity

google 支付 google 登录

云渊寒烬 8497

【人工智能】RAG如何根据实际需求选择和进行文档解析(如 PDF、Word、TXT、网页等)?

文档解析的核心在于根据解析目标、文档类型和处理量选择合适工具。PDF、Word、TXT和网页各有特性:PDF需区分可编辑与扫描版,Word需处理结构化内容,TXT简单但需注意编码,网页需应对动态内容。解析场景包括提取纯文本、结构化数据、保留格式和批量处理。非技术用户可借助工具如Adobe Acrobat、WPS和在线OCR,技术用户可通过编程实现自动化。通用流程为:明确目标、分析文档属性、选择工具并测试优化。核心是“工具适配需求”,无需追求万能方案。

奶爸的编程之路,也就一周冷个三天 506

Windows服务编程之服务程序

Windows服务程序

Fei_Liu的博客 6246

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3015

HandlerEx

HandlerExA HandlerEx function is an application-defined callback function used with the RegisterServiceCtrlHandlerEx function. A service program can use it as the control handler function of a particu

小发猫 1773

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

如何在Windows服务程序中添加U盘插拔的消息

研究了下这个问题,主要要在一般的windows服务程序中修改两个地方: 一、调用RegisterServiceCtrlHandlerEx VOID WINAPI SvcMain( DWORD dwArgc, LPTSTR *lpszArgv ){    // Register the handler function for the service.    gSvcStatusHandle...

weixin_34268579的博客 625

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Windows系统编程之编写Windows服务(1)

一、Windows服务简介:  Windows服务,也称NT服务,提供将服务器转换为可以用命令或者在启动时初始化的服务所需的管理能力,初始化发生 在任何用户登录之 前,服务可以暂停、恢复、终止、监控。 注册表维护与服务的有关信息。 Windows的所有服务在如下图所示位置: 使用Windows 服务功能的情况很多,比如DNS客户、许多Sql Server服务

小米的修行之路 837

SetServiceStatus

SetServiceStatusThe SetServiceStatus function updates the service control managers status information for the calling service.BOOL SetServiceStatus( SERVICE_STATUS_HANDLE hServiceStatus, LPSERV

小发猫 2570

ServiceMain

ServiceMainA ServiceMain function is the starting point for a service.The LPSERVICE_MAIN_FUNCTION type defines a pointer to this callback function. ServiceMain is a placeholder for an application-defi

小发猫 2075

关闭计算机就这几招

 关闭计算机就这几招注:完全翻译整理自MSDN。非常简单. Vcbear.“系统ShutDown”属于Windows系统的一种基本服务。功能上有“关闭系统”,“注销用户”,“锁定工作站”3中操作。SDK中提供了几个函数,来对此服务进行调用。“关闭系统”功能使计算机可以被安全的关闭。所有在文件系统里缓冲的内容都被强制写入磁盘。然后,显示相应的对话框,提示用户计算机将被关闭或者已经准备

vcbear的专栏 2052

关于 Service 设计初步(MSDN节选翻译)

关于 Service 设计初步(MSDN节选翻译)    以下内容是我这几天学写 Service 的笔记,共享一下,刚好让想写 Service 的朋友一起探讨(当然,这翻译很烂请不要笑话): · 一个 Service 程序包括三个部分     第一个部分是控制模块,主要是与服务管理程序沟通,进行服务程序的安装和删除。     第二个模块是主模块,也就是服务程序运行过程中要做的工作,应该是一个循环(

小发猫 1264

Windows服务程序的原理及实现

今天给大家讲下怎样做一个服务程序...本来是想详细讲的,不过写着写着累得要命..很多  地方就没详细...不过代码我加了点注...如果还有一些不明白的自己查下MSDN......便宜  环境,,VC++6.0...代码有俩段,一段是服务程序的..另一段是安装服务程序的...这个程序  的功能是开机发出滴滴声....安装成功后自己点启动...下次开机就自动起动了....

jiangxinyu的专栏 4594

使用CMap导致服务高CPU

转载自:http://91dengdeng.cn/2019/05/07/%E4%BD%BF%E7%94%A8CMap%E5%AF%BC%E8%87%B4%E6%9C%8D%E5%8A%A1%E9%AB%98CPU/ 某天某服务预警一直提示某服务性能不足,cpu已满负荷。很是纳闷,这个服务是纯内存数据,没有io操作;而且都运行了快3个月了,怎么突然就性能不足了? 步骤1 半夜从睡梦中被叫醒,先...

hnzwx888的专栏 4527

【稀缺技术揭秘】:如何用C++编写稳定的Windows服务程序并实现自动恢复机制

掌握C++ Windows编程技巧,揭秘稳定Windows服务程序开发与自动恢复机制实现方法。适用于后台监控、系统守护等场景,通过服务控制管理器(SCM)通信和异常重启策略提升健壮性。值得收藏

LogicShoal的博客 378

Win32服务程序编写

在Windows中,有一个特殊的群体,他们天生拥有极高的权限,在一些特殊用户,比如“SYSTEM”的用户中工作。他们享受很高的优待。很多系统功能(更新服务,触摸屏服务。。。)都是以服务运行的 WIn32程序编写需要用到的函数详解: BOOL WINAPI StartServiceCtrlDispatcher( In const SERVICE_TABLE_ENTRY *lpServiceTable ); 函数功能:连接到服务控制管理器 参数:一个SERVICE_TABLE_ENTRY结构的指针,成员表中的最

weixin_45239587的博客 897

Windows 服务(2) (from MSDN)

◆服务程序     一个服务程序包含了一个或多个服务的可执行代码.用SERVICE_WIN32_OWN_PROCESS类型创建的服务只包含了一个服务的可执行代码,而用SERVICE_WIN32_SHARE_PROCESS类型创建的服务包含了多个服务的可执行代码.服务不仅可以被配置在本地网域,主网域或者信任网域中执行,也可以运行在服务用户账户环境下.     接下来我们将分几个部分来介绍一些服务程序

scofieldzhu的专栏 2411
上一篇: RegisterServiceCtrlHandler
下一篇: ServiceMain
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值