在 Windows 应用程序的用户模式应用程序中,我可以使用 FindMimeFromData
从文件路径获取 mime 类型
但我想避免每次必须控制 mime 类型时都进入用户模式,
所以我想知道是否有办法在内核模式下从我的驱动程序中的 PCFLT_RELATED_OBJECTS 或 PFLT_CALLBACK_DATA 获取 mime 类型
从这些数据中,我知道我可以获取文件扩展名,但应用程序将提供用户将输入的 mime 类型,而不是扩展名。
如果您查看链接的文档,您将看到该功能由 Urlmon.dll(Internet Explorer 的一部分)提供。这是非常多的用户模式代码。当您查看描述时,原因也很清楚:MIME 类型确定是通过“数据嗅探”进行的,这当然不应该在内核模式下执行。
我同意“每次都进入用户模式”是一个坏主意。但这并不意味着您应该从内核模式执行此操作。相反,您应该推迟在内核模式下确定 MIME 类型,并在用户模式下异步执行(即稍后)。
听起来您已经有了合适的用户模式代码:“应用程序将提供用户将输入的 mime 类型”。用户在用户模式下输入该内容,应用程序在用户模式下接收它。为什么中间还有内核模式代码?