获取已安装 INF 文件的原始源路径 - Windows drivers

体育投注英超和欧冠 ⌚ 2025-09-22 13:04:18 👤 admin 👁️ 9274 ❤️ 825
获取已安装 INF 文件的原始源路径 - Windows drivers

本主题介绍如何检索安装在系统 INF 目录中的 INF 文件的原始源路径。 虽然没有 SetupAPI 函数可以直接执行此检索,但可以通过在 INF 文件中包含条目来间接执行检索,以便可以使用访问 INF 文件条目的 SetupAPI 函数从已安装的 INF 文件中检索原始源路径信息。

此方法仅适用于安装在系统 INF 文件目录中的 INF 文件。 不能对 驱动程序存储中存在的 INF 文件使用此方法。

Windows 驱动程序工具包 (WDK) 中随烤箱示例一起提供的辅助安装程序使用此方法,本主题包含演示此方法的烤箱示例的摘录。 有关烤箱示例的详细信息,请参阅 WDK 的 src\general\toaster 目录中提供的toasterpkg.htm。

若要使用此方法检索已安装 INF 文件的原始源路径,请执行以下操作:

在 INF 文件中包含一个部分,其中包含其第一个字段为 %1% 字符串密钥标记的条目。 默认情况下,%1% 字符串密钥标记表示 INF 文件的原始源路径。 当 Windows 安装此类 INF 文件时,它会使用已安装的 INF 文件版本保存原始源路径字符串。 请注意,仅当使用 %1% 时,此方法才有效,如此示例中所示。 一般情况下,%1% 解析的内容与上下文相关。 例如, add-registry 节 条目中的 %1% 字段不会解析为原始源路径;相反,此上下文中的 %1% 解析为 驱动程序存储中相应 INF 文件的路径。

使用 SetupOpenInfFile、 SetupFindFirstLine 和 SetupGetStringField 从包含 %1% 字符串密钥标记的条目中检索原始源路径。

例如, toasterpkg.inf 包括以下 [ToasterCoInfo] 节,其中包含一个自定义 OriginalInfSourcePath 条目,其第一个字段是 %1% 字符串密钥标记。

[ToastCoInfo]

; Used by the toaster co-installer to figure out where the original media is

; located (so it can start value-added setup programs).

OriginalInfSourcePath = %1%

如果配置 INF 如烤箱示例所示,则可以在系统 INF 目录中安装 INF 文件后检索原始源路径。 若要检索原始源路径,请先调用 SetupOpenInfFile 以打开已安装的 INF 文件。 例如, 来自 toastco.c 的以下代码示例打开已安装的 toasterpkg.inf 文件。

// Since the INF is already in %SystemRoot%\Inf, we need to find out where it

// originally came from. There is no direct way to ascertain an INF's

// path of origin, but we can indirectly determine it by retrieving a field

// from our INF that uses a string substitution of %1% (DIRID_SRCPATH).

//

hInf = SetupOpenInfFile(DriverInfoDetailData->InfFileName,

NULL,

INF_STYLE_WIN4,

NULL

);

打开已安装的 INF 文件后,调用 SetupFindFirstLine 以检索包含其第一个字段为 %1% 字符串密钥标记的条目的部分的第一行。 接下来,调用 SetupGetStringField 以检索此条目的第一个字段并检索 INF 文件的原始源路径。 例如, 来自 toastco.c 的以下代码示例检索包含自定义 OriginalInfSourcePath 条目的行,然后检索该条目的第一个字段。 由于原始 INF 中的第一个字段是 %1% 字符串密钥标记, 因此 SetupGetStringField 将返回 INF 文件的原始源路径。

// Contained within our INF should be a [ToastCoInfo] section with the

// following entry:

//

// OriginalInfSourcePath = %1%

//

// If we retrieve the value (i.e., field 1) of this line, we'll get the

// full path where the INF originally came from.

//

if(!SetupFindFirstLine(hInf, L"ToastCoInfo", L"OriginalInfSourcePath", &InfContext)) {

goto clean0;

}

if(!SetupGetStringField(&InfContext, 1, *MediaRootDirectory, MAX_PATH, &PathLength) ||

(PathLength <= 1)) {

goto clean0;

相关数据

欧路词典|英汉-汉英词典 粉色是什么意思

欧路词典|英汉-汉英词典 粉色是什么意思

The dancer wore a headdress of pink ostrich plumes. 那位舞戴着粉色鸵鸟毛制作的头饰。 White frost and silver storm powder crystallise the leaves on this beautiful object, topp

07-28 体育投注英超和欧冠
销售如何做好心态管理

销售如何做好心态管理

销售如何做好心态管理 销售在工作中面临各种压力和挑战,心态管理对于销售人员的成功至关重要。保持积极心态、设定现实目标、学习自我调

07-18 体育投注英超和欧冠
永辉超市福利待遇怎么样

永辉超市福利待遇怎么样

从2024年年初胖东来帮扶步步高开始,“调改”成为国内超市行业的关键词。随着新一年的到来,胖东来的“学徒”步步高和永辉超市继续加速调

09-05 体育投注英超和欧冠
《鹿鼎记》(张一山版) 第1集

《鹿鼎记》(张一山版) 第1集

视频简介 本集主要内容: 韦春花出身青楼女子,与儿子韦小宝相依为命,小宝聪明伶俐,但为人口甜舌滑,乃市井之徒。通缉的江洋大盗茅十

08-11 beat365下载地址
打造引人注目的论文:如何写好论文的highlights?

打造引人注目的论文:如何写好论文的highlights?

以下内容首发于微信公众号:【埃米编辑】。关注埃米编辑,写作投稿更容易~如有论文润色需求,可以联系我们哦~ SCI期刊投稿时,有时会遇到

07-02 beat365下载地址
梦幻西游强壮加多少血-【强身和强壮点哪个划算】

梦幻西游强壮加多少血-【强身和强壮点哪个划算】

在梦幻西游里强神和强壮是每个玩家都需要点的生活技能,但是不少玩家都不知道强壮这个技能可以加多少血,就来带大家看看梦幻西游强壮加

07-07 365体育欧洲版本