taskhostw.exe(Task Host for Windows)是Windows操作系统中的一个系统进程,主要作用是支持并调用Windows任务计划程序;专门承载任务计划程序 (Task Scheduler) 内基于 DLL 实现的后台任务,类似 svchost.exe 是 DLL 容器,避免每个 DLL 单独生成独立 exe 进程,节省系统资源。

taskhostw.exe(Task Host for Windows)完整解构

文件路径:C:\Windows\System32\taskhostw.exe 官方名称:Host Process for Windows Tasks(Windows 任务主机进程) 版本演进对照: Win7 → taskhost.exe;Win8 → taskhostex.exeWin10/Win11 → taskhostw.exe 核心定位:任务计划程序 Task Scheduler 的 COM Handler 任务宿主容器,专门承载「ComHandler 类型 DLL 任务」,和 svchost 类似,是 DLL/COM 组件的通用进程容器;同时负责关机阶段任务清理、消息循环处理

公共前置总览

✅ 底层原理

taskhostw.exe 是用户态可执行宿主,不自带业务逻辑,核心职责:

  1. Schedule服务(schedsvc.dll)启动,接收任务计划下发的 ComHandler 任务参数(CLSID)
  2. 初始化 COM 运行时,根据 CLSID 从HKCR\CLSID加载对应的任务 DLL,实例化ITaskHandler接口并启动任务
  3. 维持 Windows 消息循环,接收系统事件(注销、关机、休眠),通知托管任务优雅退出
  4. 一个 taskhostw 实例可承载一组同类 COM 任务;多个任务会生成多个独立 taskhostw 进程,实现隔离

任务计划两种 Action 区分(核心边界)

  • Exec:直接启动 exe,不走 taskhostw
  • ComHandler:DLL 实现的任务,必须由 taskhostw 托管(如 MsCtfMonitor、系统声音服务、维护任务)

✅ 依赖文件

文件 核心作用
taskhostw.exe 宿主主程序,COM 初始化、消息循环、生命周期管理
schedsvc.dll 任务计划服务核心,触发启动 taskhostw
taskschd.dll 任务计划客户端 API,读写C:\Windows\System32\Tasks下 XML 任务定义
ole32.dll / combase.dll COM 运行时,CoInitialize、CoCreateInstance 实例化任务对象
advapi32.dll 注册表读取 CLSID 信息、安全令牌
user32.dll Windows 消息循环、窗口 / 系统事件(关机通知)
kernel32.dll / ntdll.dll 基础进程、内存、加载器 API
backgroundtaskhost.exe UWP 独立后台任务宿主(和 taskhostw 区分,不要混淆)

✅ 依赖关系

  1. 服务依赖:依赖Task Scheduler(Schedule)服务,服务停止后不会新建 taskhostw 实例
  2. COM 依赖:必须正常 COM 子系统,CLSID 注册表项缺失 / 损坏直接任务启动失败
  3. 权限依赖:任务可运行在系统、本地服务、用户多种安全上下文,taskhostw 继承任务配置的令牌
  4. 存储依赖:任务定义存放在C:\Windows\System32\Tasks\下 xml 文件
  5. 关机链路依赖:系统退出时,taskhostw 接收 WM_QUERYENDSESSION 消息,等待内部任务完成

✅ 标准逻辑链路

触发条件(定时/开机/事件触发)
→ Schedule服务(schedsvc.dll)解析Tasks目录下任务XML
→ 判断Action类型=ComHandler,取出CLSID
→ Schedule 派生启动 taskhostw.exe,传入CLSID参数
→ taskhostw 调用CoInitializeEx初始化COM单元
→ 查询HKCR\CLSID,获取任务DLL路径
→ LoadLibrary加载DLL,创建ITaskHandler COM对象
→ ITaskHandler::Start() 执行业务逻辑,开启消息循环
→ 任务完成 / 收到关机信号 → ITaskHandler::Stop() 清理资源
→ 释放COM、卸载DLL → taskhostw进程退出

✅ 配套链

  1. 核心服务:Schedule(任务计划服务)
  2. 管理工具:schtasks.exe、任务计划程序 (taskschd.msc)
  3. 排查工具:Process Explorer(查看每个 taskhostw 内部加载的 COM 任务)、事件查看器(TaskScheduler 事件)
  4. 配套同类宿主:svchost.exe(服务 DLL)、backgroundtaskhost.exe(UWP 后台任务)、rundll32.exe(临时 DLL 调用)
  5. 日志源:Microsoft-Windows-TaskScheduler

✅ 通用边界

  1. taskhostw只处理 ComHandler 任务,普通 exe 任务直接由 Schedule 拉起,不经过它
  2. 任务卡住不退出 → taskhostw 阻塞关机,系统弹窗提示 “Task Host 正在关闭”(高频故障)
  3. 多个 taskhostw 同时存在属于正常现象,代表多组隔离的 COM 任务在运行
  4. 和 backgroundtaskhost.exe 区分:backgroundtaskhost 专门跑 UWP IBackgroundTask,不属于任务计划 ComHandler 链路
  5. 不能直接禁用 taskhostw,会造成输入法监控、系统声音、系统维护等基础功能失效
  6. 恶意程序常伪装同名文件,校验标准:路径必须在C:\Windows\System32、微软数字签名

功能 / 能力逐条解构

1. ComHandler COM 任务承载(核心能力)

  • 底层原理:接收 Schedule 传入 CLSID,初始化 COM 并加载任务 DLL,标准接口ITaskHandler
  • 依赖:ole32.dll、taskschd.dll、schedsvc.dll
  • 逻辑链路:见总链路
  • 配套:schtasks 创建 ComHandler 类型任务
  • 边界:任务 DLL 崩溃会直接结束当前 taskhostw 实例,其他同进程内任务一同终止

2. Windows 消息循环与系统关机协调(最常见用户感知场景)

  • 底层原理:taskhostw 内置消息泵,监听WM_QUERYENDSESSIONWM_ENDSESSION系统消息,转发给内部 COM 任务,等待任务优雅收尾;超时后系统强制终止进程
  • 配套:关机阻塞排查核心链路
  • 边界:很多第三方自研 ComHandler 任务没有实现 Stop 接口,永久阻塞关机

3. 多实例隔离机制

  • 底层原理:Schedule 会按任务分组 / 安全上下文启动独立 taskhostw;不同任务互不干扰,故障隔离
  • 边界:无法手动控制哪些任务合并到同一个 taskhostw 实例,由系统调度策略决定

4. 任务生命周期管理(Start/Pause/Stop)

  • 底层原理:标准ITaskHandler接口定义四阶段:初始化→Start 运行→Stop 停止→销毁
  • 配套:任务计划手动结束任务时,通过该接口通知退出
  • 边界:老旧 COM 任务不支持 Pause,仅支持 Start/Stop

5. 任务上下文与安全令牌继承

  • 底层原理:taskhostw 启动时直接继承任务配置里指定的账号令牌(System / 当前用户等)
  • 边界:如果配置的账号密码失效,taskhostw 直接启动失败,事件日志报错

高频故障 & 边界汇总

  1. 关机一直卡在 Task Host:内部 ComHandler 任务卡死不响应 Stop,典型如 MsCtfMonitor、第三方输入法 / 杀毒注册的 COM 任务
  2. taskhostw 持续高 CPU:托管的 COM 任务逻辑死循环,不是 taskhostw 本身问题
  3. 任务计划任务运行失败,事件日志报错:CLSID 注册表丢失、对应 DLL 缺失、COM 注册损坏
  4. 多个 taskhostw 大量常驻后台:系统维护任务、输入法监控、音频后台持续运行
  5. 鉴别恶意伪装 taskhostw:非System32目录、无微软数字签名的同名程序

配套运维 & 排查示例

# 查看所有taskhostw加载的模块
tasklist /M /FI "IMAGENAME eq taskhostw.exe"
# 查看任务计划日志
wevtutil qe Microsoft-Windows-TaskScheduler/Operational

精准定位内部任务推荐工具:Sysinternals Process Explorer,选中 taskhostw,下方面板直接显示正在运行的 COM 任务名称

taskhostw.exe 完整释义与全称

1. 字面拆分缩写

TaskHostW = Task Host for Windows
  • Task:任务
  • Host:宿主 / 承载进程
  • W = Windows

2. 微软官方标准全称(任务管理器显示名 / Microsoft Learn 标准描述)

正式标准名称

Host Process for Windows Tasks
 
中文:Windows 任务的主机进程

文件属性内置描述

Windows 文件属性面板直接标注:Windows 任务的主机进程

3. 历代版本区分(后缀含义)

  • Win7:taskhost.exe(无后缀 W)
  • Win8:taskhostex.exe(ex = Extended,扩展版)
  • Win10/Win11:taskhostw.exe(w = Windows,新版 Windows 专用任务宿主)

4. 核心作用

专门承载任务计划程序 (Task Scheduler) 内基于 DLL 实现的后台任务,类似 svchost.exe 是 DLL 容器,避免每个 DLL 单独生成独立 exe 进程,节省系统资源。

taskhostw.exe(Task Host for Windows)底层完整原理

一、基础定位与版本演进

1. 全称释义

  • 文件名:taskhostw.exe
  • 官方标准名称:Host Process for Windows Tasks
  • 缩写拆解:TaskHostW = Task Host for Windows
    • Task:计划任务
    • Host:DLL 宿主容器
    • W:Windows 现代通用版(Win10/11 专用)

2. 三代宿主区分(架构迭代逻辑)

  1. Win7:taskhost.exe — 初代任务宿主,仅支持基础 COM 任务
  2. Win8:taskhostex.exe — Extended 扩展版,增加现代应用后台任务
  3. Win10/11:taskhostw.exe — Windows 统一宿主,合并前两者能力,淘汰 taskeng.exe 旧调度执行器

3. 核心本质

svchost.exe/dllhost.exe属于同类型宿主容器架构
 
DLL 无法独立运行,taskhostw 作为轻量 EXE 壳,加载计划任务里的 COMHandler 类型 DLL 任务,托管执行、隔离资源、统一生命周期管理。
image
任务管理器taskhostw展示
 

二、顶层依赖架构链路(完整进程树)

完整启动链路

ntoskrnl.exe(内核) → wininit.exe → services.exe →
 
svchost.exe -k netsvcs -s Schedule(Task Scheduler 计划任务服务)
 
→ 触发创建 taskhostw.exe 实例

分层协作角色

  1. Schedule 服务(父进程):调度中枢,监控触发器、权限校验、管理任务注册表定义
  2. taskhostw.exe(子宿主):纯执行容器,只负责加载 DLL、运行任务、消息循环、响应关机信号
  3. COMHandler DLL:真正业务逻辑(系统维护、同步、更新、通知后台模块)

三、底层核心架构分层(内部执行环节)

层级 1:进程启动与参数解析环节

  1. Schedule 服务调用CreateProcess生成 taskhostw,传递任务 GUID、用户 SID、会话标识、运行权限作为启动参数
     
    示例命令行:
     
    taskhostw.exe {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} S-1-5-21-xxx Interactive:Highest
  2. taskhostw 入口函数读取参数,定位C:\Windows\System32\Tasks下对应任务 XML 配置文件
  3. 解析任务 Action 字段,区分两种任务类型:
    • Exec:直接启动 exe(不走 taskhostw,由 Schedule 直接派生)
    • ComHandler:CLSID 绑定 DLL(必须由 taskhostw 托管

层级 2:COM 运行时初始化(底层核心)

taskhostw 内置精简 COM 宿主环境,流程:
  1. 调用CoInitializeEx初始化单元线程 COM 模型
  2. 根据任务 CLSID,通过注册表HKCR\CLSID找到对应 DLL 路径
  3. LoadLibrary加载任务 DLL,GetProcAddress获取 COM 工厂入口
  4. 创建 COM 任务对象,调用接口ITaskHandler::Start启动业务逻辑
  5. 启动 Windows 消息循环GetMessage/DispatchMessage,维持进程存活,接收系统广播(注销、关机、休眠)

层级 3:资源隔离与多实例调度机制

1. 多进程隔离规则

  • 低权限普通用户任务:独立 taskhostw 实例
  • 系统高权限管理员 / 服务任务:单独实例
  • 同类型轻量 COM 任务可复用同一 taskhostw 进程(节省内存)
  • 单个 DLL 崩溃仅销毁当前 taskhostw,不会导致 Schedule 服务、系统蓝屏(稳定性隔离设计)

2. 资源管控底层逻辑

由 ntoskrnl 执行体 Ps 进程管理器统一配额限制:
  • 内存上限、CPU 时长、任务超时自动终止
  • 句柄数量、GDI 资源限制,防止后台任务泄漏资源

层级 4:任务生命周期完整底层逻辑链

  1. 等待触发:Schedule 服务监控时间 / 登录 / 空闲 / 网络触发器
  2. 条件校验:判断电源、联网、并发、用户会话是否符合运行条件
  3. 派生宿主:条件满足,创建 taskhostw 并传入任务唯一 GUID
  4. 加载 COM DLL:COM 运行时初始化,实例化业务任务
  5. 后台持续运行:消息循环驻留,执行同步、更新、维护逻辑
  6. 终止分支两种场景
    • 主动完成:DLL 调用ITaskHandler::Stop,消息循环退出,进程正常销毁
    • 系统强制关闭:关机 / 注销广播送达 → taskhostw 下发 Stop 指令,超时未退出则 ntoskrnl 内核强制 TerminateProcess
  7. 日志回写:进程退出前通知 Schedule 服务,记录返回码、运行时长至任务事件日志

四、关机阻塞底层原理(常见 Task Host Window 弹窗根源)

  1. 用户发起关机,csrss.exe 广播WM_QUERYENDSESSION消息至所有 GUI/COM 进程
  2. taskhostw 收到关机信号,同步调用托管 DLL 的Stop接口,等待任务保存数据、收尾
  3. 若 DLL 任务卡死、IO 阻塞、无响应:taskhostw 持续阻塞消息循环
  4. 系统倒计时等待,超时后内核强制杀死 taskhostw,弹窗提示「正在关闭应用:Task Host Window」

五、与 svchost.exe、dllhost.exe 核心底层差异

进程 托管对象 调度父服务 运行模型
svchost.exe Windows 服务 DLL Service Control Manager 系统服务、无界面后台
dllhost.exe 普通 COM 组件 / Shell 扩展 COM 子系统 右键、文件夹、第三方 COM
taskhostw.exe 计划任务 ComHandler DLL Schedule(Task Scheduler) 定时、登录触发的系统后台维护任务

六、内核交互底层链路(与 ntoskrnl 协作)

  1. Schedule 服务(svchost 承载)通过 Win32 API 发起创建 taskhostw → 陷入 ntoskrnl NtCreateProcess
  2. taskhostw 加载 DLL 时调用内存管理 NtMapViewOfSection 映射 DLL 到虚拟地址
  3. 消息循环依赖内核 APC 异步调用、窗口站会话隔离(Win32k 子系统)
  4. 关机流程由 win32k 广播会话结束消息,内核提供进程强制销毁接口 NtTerminateProcess

七、安全底层机制

  1. 文件强校验:合法 taskhostw 仅存在C:\Windows\System32,微软数字签名,其他目录同名文件判定为恶意伪装程序Microsoft ...
  2. 权限隔离:任务按配置运行在对应用户 SID 会话,普通任务无法突破用户权限访问系统敏感目录
  3. COM 沙箱约束:系统内置任务 CLSID 做白名单校验,恶意自定义 COMHandler 会被 Schedule 服务拦截

八、极简原理总结

taskhostw.exe 是计划任务专用 COM DLL 宿主容器,由 Task Scheduler 服务按需创建;内部封装精简 COM 运行时,加载定时后台 DLL 任务,通过独立进程实现故障隔离,依靠 Windows 消息循环维持任务驻留,全程依托 ntoskrnl 内核完成进程创建、内存映射、会话与生命周期管控。

taskhostw.exe是Windows操作系统中的一个系统进程,主要作用是支持并调用Windows任务计划程序。当您在计算机上创建或修改计划任务时,taskhostw.exe会启动并运行相应的任务。

常见的任务计划包括备份、系统检查、磁盘清理等等。通过设置计划任务,可以让计算机在特定时间或事件发生时自动执行这些任务,从而提高工作效率和系统稳定性。

对于普通用户来说,一般不需要手动打开或使用taskhostw.exe。如果您想创建计划任务,请打开“控制面板”-“管理工具”-“任务计划程序”,然后按照提示操作即可。


taskhostw.exe 是 Windows 操作系统中的一个重要进程,它扮演着任务宿主的角色,主要负责管理和执行多个后台任务和服务。以下是关于 taskhostw.exe 的详细解释:

1. 功能和作用

  • 任务宿主进程:taskhostw.exe 负责托管和管理多个系统服务和后台任务,确保它们能够在需要时有效运行。这些服务和任务包括系统维护、资源管理、事件处理、定时任务等。

  • 服务管理:Windows 操作系统依赖于许多服务来提供核心功能,如网络连接、安全管理、打印服务等。taskhostw.exe 可以托管这些服务的执行,确保它们能够按照系统需求运行和响应。

  • 任务调度和执行:它负责管理定时任务的执行,例如系统清理、更新检查等,以及响应各种系统事件,确保系统能够高效运行。

  • 资源管理和优化:作为任务宿主,taskhostw.exe 需要合理分配和管理系统资源,如处理器时间、内存使用等,以优化系统的整体性能和响应速度。

2. 执行环境和运行方式

  • 运行环境:taskhostw.exe 是一个系统级的进程,通常在 Windows 启动时启动,并持续运行以支持系统的各种后台任务和服务。

  • 稳定性和安全性:为确保系统的稳定性和安全性,taskhostw.exe 需要遵循严格的执行和权限管理,防止恶意软件利用其进行攻击或干扰系统运行。

3. 为什么存在

  • 系统优化和管理:Windows 操作系统需要一种机制来有效地管理和执行各种后台任务和服务,以确保系统能够持续稳定和高效地运行。

  • 用户体验和效率:通过集中管理和优化后台任务和服务,taskhostw.exe 帮助用户在不影响前台操作的情况下,保持系统的正常运行状态和性能。

 taskhostw.exe 是 Windows 操作系统中的关键组成部分,通过管理和执行多个后台任务和服务,为用户提供稳定、高效的操作环境。


taskhostw.exe 是 Windows 操作系统中的一个重要进程,它承担了多个系统级别的任务。以下是关于 taskhostw.exe 的一些底层原理和功能解释:

  1. 任务宿主进程

    • taskhostw.exe 是任务宿主进程的主要执行文件,负责托管和运行多个后台任务和服务。这些任务可能包括定时器、事件通知、服务维护等。它们通常不直接与用户界面交互,而是在后台默默执行。
  2. 系统任务管理

    • taskhostw.exe 作为任务宿主,负责管理和执行 Windows 中的系统任务。这些任务可能是定期检查更新、执行系统清理、处理硬件事件等。它们对操作系统的正常运行至关重要。
  3. 系统资源管理

    • 任务宿主进程负责管理和分配系统资源,确保各个任务能够在需要时获得足够的处理器时间、内存和其他资源。这有助于优化系统的整体性能和响应速度。
  4. 安全和稳定性

    • taskhostw.exe 的设计目标之一是增强系统的安全性和稳定性。它通过隔离不同的任务和服务,避免单个任务或服务的崩溃影响整个系统的运行。
  5. 版本和变体

    • taskhostw.exe 的具体功能和行为可能因操作系统版本和配置而有所不同。不同的 Windows 版本可能会有更新或变化,以适应新的系统要求和安全性需求。

 taskhostw.exe 是 Windows 系统中的一个关键进程,通过托管和管理多个系统级任务和服务,确保操作系统的正常运行和安全性。它在后台默默工作,通常不会直接展示在用户界面上,但其功能对系统的稳定性和性能有着重要的影响。


taskhostw.exe 的架构涉及到它在 Windows 系统中的角色和功能,虽然具体的实现细节可能难以完全披露,但可以从它的作用和运行方式来推测其大致的架构特征:

  1. 任务宿主服务

    • taskhostw.exe 充当了一个任务宿主(Task Host)的角色,负责托管和执行多个后台任务和服务。这些任务可以是由操作系统本身需要执行的,也可以是由第三方应用程序注册到系统中的。
  2. 多任务管理

    • 作为任务宿主,taskhostw.exe 需要能够有效地管理多个任务的执行。这可能涉及到任务的优先级管理、资源分配、任务间的隔离等。这种管理能力有助于确保系统资源的合理利用和任务的有效执行。
  3. 安全和隔离性

    • 为了确保系统的安全性和稳定性,taskhostw.exe 需要在执行任务时采取一定的隔离措施。这可能包括使用安全上下文执行任务、限制对系统资源的访问等措施,以防止任务或服务之间的相互干扰或安全漏洞。
  4. 系统集成

    • taskhostw.exe 需要与 Windows 操作系统的其他部分有效集成。它可能会与系统的调度程序、事件通知机制、安全策略等进行交互,以确保任务的顺利执行和系统的整体稳定性。
  5. 灵活性和扩展性

    • 考虑到不同的系统配置和需求,taskhostw.exe 可能需要具有一定的灵活性和扩展性。这使得它能够适应不同版本的 Windows 和不同的系统环境,保证其在各种条件下的正常运行。

 taskhostw.exe 的架构设计旨在支持 Windows 系统的多任务管理和后台服务托管,确保系统的高效运行和安全性。具体的实现可能会因 Windows 版本的更新和安全策略的调整而有所不同。。


taskhostw.exe 的功能可以大致分为以下几类,它主要作为 Windows 操作系统的任务宿主进程,负责管理和执行多个后台任务和服务:

  1. 系统维护任务

    • taskhostw.exe 可能负责执行一些系统维护相关的任务,例如定期的系统清理和优化,磁盘碎片整理,以及其他的系统资源管理和优化工作。这些任务有助于保持系统的稳定性和性能。
  2. 服务托管

    • Windows 操作系统依赖于许多后台服务来提供各种功能,例如网络连接、安全管理、打印服务等。taskhostw.exe 可以托管一些这样的服务,确保它们能够在系统需要时运行和响应。
  3. 任务调度和执行

    • taskhostw.exe 可能涉及到任务的调度和执行,包括定时任务的执行,事件驱动任务的处理等。它负责确保这些任务按照预定的计划或触发条件执行,并且能够在后台高效地完成任务。
  4. 系统事件管理

    • 在操作系统运行期间,会产生各种事件,如硬件状态变化、系统错误报告、安全事件等。taskhostw.exe 可能负责接收和处理这些事件,以便适时地触发相应的处理程序或服务。
  5. 资源管理和优化

    • 作为任务宿主,taskhostw.exe 需要管理系统资源的分配和优化,包括处理器时间、内存使用以及其他硬件资源的访问。这有助于确保系统中运行的任务和服务能够有效地共享和利用系统资源。
  6. 安全性和稳定性增强

    • taskhostw.exe 在执行任务和服务时需要遵循一定的安全策略和隔离原则,以防止恶意软件或异常行为影响整个系统的安全性和稳定性。

 taskhostw.exe 扮演着一个关键的角色,确保 Windows 操作系统能够高效运行并提供所需的各种功能和服务。它的功能分类涵盖了多个方面,旨在支持系统的维护、管理和优化。


taskhostw.exe 主要在以下几个应用场景中发挥作用:

  1. 系统任务和服务管理

    • taskhostw.exe 负责管理和执行 Windows 操作系统中的多个后台任务和服务。这些任务可能包括定时的系统维护、服务的启动和停止、系统事件的处理等。它通过托管这些任务和服务,确保系统能够顺利运行并保持稳定性。
  2. 后台服务的执行

    • Windows 操作系统依赖于各种后台服务来提供核心功能,如网络连接、安全性管理、文件系统操作等。taskhostw.exe 可以托管并执行这些服务,确保它们在需要时能够有效地运行和响应。
  3. 任务调度和处理

    • taskhostw.exe 可能涉及到任务的调度和处理,包括定时执行的任务、事件触发的任务等。例如,系统中的定时清理、更新检查、备份任务等可能由 taskhostw.exe 负责管理和执行。
  4. 系统资源管理和优化

    • 作为任务宿主,taskhostw.exe 需要有效地管理系统资源,包括处理器时间、内存使用、存储访问等。通过合理分配和优化资源的使用,它帮助提高系统的整体性能和响应速度。
  5. 事件驱动的任务处理

    • 当系统发生特定事件时(如硬件状态变化、用户操作、系统错误等),taskhostw.exe 可能会根据预设的规则或策略来处理这些事件。这包括触发相关的任务执行或服务响应,以确保系统能够适时地处理事件并采取必要的行动。

 taskhostw.exe 在 Windows 操作系统中扮演着一个重要的角色,通过管理和执行各种后台任务和服务,为用户提供稳定、高效的系统运行环境。


 

posted @ 2023-09-30 19:00  suv789  阅读(6136)  评论(0)    收藏  举报