SERVICE_TRIGGER_SPECIFIC_DATA_ITEM 结构 (winsvc.h)

包含服务触发器事件的特定于触发器的数据。 此结构由 SERVICE_TRIGGER 结构用于SERVICE_TRIGGER_TYPE_CUSTOM、SERVICE_TRIGGER_TYPE_DEVICE_ARRIVAL、SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT或SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT触发器事件。

语法

typedef struct _SERVICE_TRIGGER_SPECIFIC_DATA_ITEM {
  DWORD dwDataType;
  DWORD cbData;
  PBYTE pData;
} SERVICE_TRIGGER_SPECIFIC_DATA_ITEM, *PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM;

成员

dwDataType

pData 指向的触发器特定数据的数据类型。 此成员可以是以下值之一。

含义
SERVICE_TRIGGER_DATA_TYPE_BINARY
1
特定于触发器的数据采用二进制格式。
SERVICE_TRIGGER_DATA_TYPE_STRING
2
特定于触发器的数据采用字符串格式。
SERVICE_TRIGGER_DATA_TYPE_LEVEL
3
特定于触发器的数据是一个字节值。
SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY
4
特定于触发器的数据是 64 位无符号整数值。
SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL
5
特定于触发器的数据是 64 位无符号整数值。

cbData

指向 pData 的特定于触发器的数据的大小(以字节为单位)。 最大值为 1024。

pData

指向服务触发器事件的触发器特定数据的指针。 特定于触发器的数据取决于触发器事件类型;请参阅备注。

如果 dwDataType 成员SERVICE_TRIGGER_DATA_TYPE_BINARY,则特定于触发器的数据是字节数组。

如果 dwDataType 成员SERVICE_TRIGGER_DATA_TYPE_STRING,则特定于触发器的数据是以 null 结尾的字符串或以 null 结尾的字符串的多字符串,以两个 null 终止字符结尾。 例如:"5001\0UDP\0%programfiles%\MyApplication\MyServiceProcess.exe\0MyService\0\0"

字符串必须为 Unicode;不支持 ANSI 字符串。

注解

下表按触发器事件类型列出了特定于触发器的数据。

事件类型 特定于触发器的数据
SERVICE_TRIGGER_TYPE_CUSTOM 由定义自定义 事件的 Windows 事件跟踪 (ETW) 提供程序指定。
SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL SERVICE_TRIGGER_DATA_TYPE_STRING字符串,指定设备接口类的硬件 ID 或兼容 ID 字符串。
SERVICE_TRIGGER_TYPE_DOMAIN_JOIN 不适用。
SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT SERVICE_TRIGGER_DATA_TYPE_STRING多字符串,用于指定侦听事件的服务的端口、协议以及可执行路径和名称(可选)。
SERVICE_TRIGGER_TYPE_GROUP_POLICY 不适用。
SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY 不适用。
SERVICE_TRIGGER_TYPE_NETWORK_ENDPOINT 指定网络终结点的端口、命名管道或 RPC 接口的SERVICE_TRIGGER_DATA_TYPE_STRING。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 winsvc.h

另请参阅

ChangeServiceConfig2

QueryServiceConfig2

SERVICE_TRIGGER

服务触发器事件