如何在内核模式下获取文件mime类型

问题描述 投票:0回答:1

在 Windows 应用程序的用户模式应用程序中,我可以使用 FindMimeFromData
从文件路径获取 mime 类型 但我想避免每次必须控制 mime 类型时都进入用户模式,

所以我想知道是否有办法在内核模式下从我的驱动程序中的 PCFLT_RELATED_OBJECTS 或 PFLT_CALLBACK_DATA 获取 mime 类型

从这些数据中,我知道我可以获取文件扩展名,但应用程序将提供用户将输入的 mime 类型,而不是扩展名。

filesystems kernel driver minifilter wdm
1个回答
0
投票

如果您查看链接的文档,您将看到该功能由 Urlmon.dll(Internet Explorer 的一部分)提供。这是非常多的用户模式代码。当您查看描述时,原因也很清楚:MIME 类型确定是通过“数据嗅探”进行的,这当然不应该在内核模式下执行。

我同意“每次都进入用户模式”是一个坏主意。但这并不意味着您应该从内核模式执行此操作。相反,您应该推迟在内核模式下确定 MIME 类型,并在用户模式下异步执行(即稍后)。

听起来您已经有了合适的用户模式代码:“应用程序将提供用户将输入的 mime 类型”。用户在用户模式下输入该内容,应用程序在用户模式下接收它。为什么中间还有内核模式代码?

© www.soinside.com 2019 - 2024. All rights reserved.