IBackgroundCopyJob2::SetNotifyCmdLine 方法 (bits1_5.h)
指定在作业进入 BG_JOB_STATE_ERROR 或 BG_JOB_STATE_TRANSFERRED 状态时要执行的程序。 BITS 在调用此方法的用户的上下文中执行程序。
语法
HRESULT SetNotifyCmdLine(
[in] LPCWSTR Program,
[in] LPCWSTR Parameters
);
参数
[in] Program
包含要执行的程序的以 Null 结尾的字符串。 pProgram 参数仅限于MAX_PATH个字符,不包括 null 终止符。 应指定程序的完整路径;方法不会使用搜索路径来查找程序。
若要删除命令行通知,请将 pProgram 和 pParameters 设置为 NULL。 如果 pProgram 为 NULL 且 pParameters 为非 NULL,则该方法失败。
[in] Parameters
以 Null 结尾的字符串,其中包含 pProgram 中的程序参数。 第一个参数必须是 pProgram 中的程序, (如果路径使用长文件名) ,则使用引号。 pParameters 参数限制为 4,000 个字符,不包括 null 终止符。 此参数可以为 NULL。
返回值
此方法返回以下 HRESULT 值以及其他值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
作业的状态不能 BG_JOB_STATE_CANCELLED 或 BG_JOB_STATE_ACKNOWLEDGED。 |
|
pProgram 或 pParameters 字符串太长。 |
注解
BITS 调用 CreateProcessAsUser 函数来启动程序。
程序应返回零的退出代码。 如果程序不返回零的退出代码,则 BITS 会检查作业的状态。 如果程序未取消或完成作业,则 BITS 会在为作业指定的 最小重试延迟 过期后再次调用程序。
BITS 1.5 及更早版本: BITS 只调用程序一次。
若要执行脚本,请指定 WScript.exe (在 pProgram 中包含 WScript.exe) 的完整路径。 pParameters 参数应包括 WScript.exe、脚本名称和任何参数。
如果程序需要与作业相关的信息,则必须将此信息作为参数传递。 请勿在 pProgram 或 pParameters 中包含环境变量(如 %system32%),它们不会展开。
应包含程序的完整路径。 如果 pParameters 中的任何参数包含使用长文件名的路径(例如模块名称),请在路径周围使用引号。
如果要执行的程序使用回复或下载文件,则程序必须调用 IBackgroundCopyJob::Complete 方法,使文件可供客户端使用。
调用 IBackgroundCopyJob::SetNotifyFlags 方法以指定何时执行程序。 只能针对作业错误或传输的事件请求命令行执行,而不能针对作业修改事件请求执行。 请注意,即使事件发生后调用 SetNotifyCmdLine 方法,BITS 仍会执行命令行。
如果 BITS 作业位于服务帐户上下文 (即 networkservice/localsystem/localservice) ,则不会执行任何形式的命令行回调。
如果同时调用 SetNotifyCmdLine 方法和 IBackgroundCopyJob::SetNotifyInterface 方法,则仅当通知接口无效或 BITS 调用的通知方法返回失败代码时,BITS 才会执行命令行。 例如,如果 BITS 调用的通知方法返回E_FAIL,则 BITS 将执行命令行。 但是,如果通知方法返回 S_OK,则 BITS 不会执行命令行。 如果通知方法和命令行执行请求都失败,BITS 将在最短重试期到期后再次发送通知。
请注意,调用 IBackgroundCopyJob::TakeOwnership 方法会从作业中删除命令行通知。
示例
有关调用 SetNotifyCmdLine 方法的示例,请参阅 注册以执行程序。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2003 |
目标平台 | Windows |
标头 | bits1_5.h (包括 Bits.h) |
Library | Bits.lib |
DLL | BitsPrx2.dll |
可再发行组件 | Windows XP 上的 BITS 1.5 |
另请参阅
IBackgroundCopyJob2::GetNotifyCmdLine