acmDriverPriority 函数 (msacm.h)
acmDriverPriority 函数修改 ACM 驱动程序的优先级和状态。
语法
MMRESULT ACMAPI acmDriverPriority(
HACMDRIVERID hadid,
DWORD dwPriority,
DWORD fdwPriority
);
参数
hadid
已安装的 ACM 驱动程序的驱动程序标识符的句柄。 如果指定了ACM_DRIVERPRIORITYF_BEGIN和ACM_DRIVERPRIORITYF_END标志,则此参数必须为 NULL。
dwPriority
全局 ACM 驱动程序标识符的新优先级。 零值指定驱动程序标识符的优先级应保持不变。 值 1 指定驱动程序应作为最高搜索优先级驱动程序放置。 值 –1 指定驱动程序应作为最低搜索优先级驱动程序放置。 优先级仅用于全局驱动程序。
fdwPriority
用于设置 ACM 驱动程序优先级的标志。 定义了以下值。
值 | 含义 |
---|---|
ACM_DRIVERPRIORITYF_BEGIN | 应延迟更改通知广播。 应用程序必须尽快使用 ACM_DRIVERPRIORITYF_END 标志重新允许通知广播。 请注意,hadid 必须为 NULL,dwPriority 必须为零,并且只能设置ACM_DRIVERPRIORITYF_BEGIN标志。 |
ACM_DRIVERPRIORITYF_DISABLE | 如果 ACM 驱动程序当前已启用,则应禁用它。 禁用已禁用的驱动程序没有任何作用。 |
ACM_DRIVERPRIORITYF_ENABLE | 如果 ACM 驱动程序当前处于禁用状态,则应启用它。 启用已启用的驱动程序不会执行任何操作。 |
ACM_DRIVERPRIORITYF_END | 调用任务希望重新允许更改通知广播。 对于每个具有 ACM_DRIVERPRIORITYF_BEGIN 标志的成功调用,应用程序必须使用ACM_DRIVERPRIORITYF_END调用 acmDriverPriority 。 请注意,hadid 必须为 NULL,dwPriority 必须为零,并且只能设置ACM_DRIVERPRIORITYF_END标志。 |
返回值
如果成功,则返回零,否则返回错误。 可能的错误值包括以下内容。
返回代码 | 说明 |
---|---|
|
延迟广播锁由其他任务拥有。 |
|
至少有一个标志无效。 |
|
指定的句柄无效。 |
|
至少有一个参数无效。 |
|
指定的驱动程序不支持请求的操作。 例如,本地和通知驱动程序标识符不支持 (优先级,但可以在) 启用和禁用。 如果应用程序为本地和通知驱动程序标识符指定 dwPriority 的非零值,则将返回此错误。 |
注解
可以启用和禁用所有驱动程序标识符,包括全局、本地和通知驱动程序标识符。
如果需要启用、禁用或转移多个全局驱动程序标识符的优先级,应用程序应使用ACM_DRIVERPRIORITYF_BEGIN标志来延迟更改通知广播。 指定ACM_DRIVERPRIORITYF_END标志时,将广播单个更改通知。
应用程序可以将 函数与 acmMetrics ACM_METRIC_DRIVER_PRIORITY指标索引结合使用,以检索全局驱动程序的当前优先级。 acmDriverEnum 函数始终从最高到最低优先级枚举驱动程序。
所有已启用的驱动程序标识符都将收到更改通知。 应用程序可以通过将 acmDriverAdd 函数与 ACM_DRIVERADDF_NOTIFYHWND 标志结合使用来注册通知消息。 不会广播对非全局驱动程序标识符的更改。
当应用程序未指定驱动程序时,优先级仅用于搜索顺序。 提升驱动程序的优先级不会影响驱动程序的性能。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | msacm.h |
Library | Msacm32.lib |
DLL | Msacm32.dll |