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 旗標呼叫 acmDriverPriority ,並針對每個成功的呼叫呼叫呼叫ACM_DRIVERPRIORITYF_END。 請注意, hadid 必須是 NULL、 dwPriority 必須是零,而且只能設定ACM_DRIVERPRIORITYF_END旗標。 |
傳回值
如果成功或發生錯誤,則傳回零。 可能的錯誤值包括下列專案。
傳回碼 | Description |
---|---|
|
延後廣播鎖定是由不同的工作所擁有。 |
|
至少有一個旗標無效。 |
|
指定的句柄無效。 |
|
至少有一個參數無效。 |
|
指定的驅動程式不支援要求的作業。 例如,本機和通知驅動程式標識碼不支援 (優先順序,但可以啟用和停用) 。 如果應用程式針對本機和通知驅動程式標識子指定 dwPriority 的非零值,則會傳回此錯誤。 |
備註
所有驅動程式識別碼都可以啟用和停用,包括全域、本機和通知驅動程式標識碼。
如果需要啟用、停用或轉移多個全域驅動程式標識碼,應用程式應該使用 ACM_DRIVERPRIORITYF_BEGIN 旗標延遲變更通知廣播。 指定ACM_DRIVERPRIORITYF_END旗標時,將會廣播單一變更通知。
應用程式可以使用 函式搭配 acmMetrics ACM_METRIC_DRIVER_PRIORITY計量索引,以擷取全域驅動程式目前的優先順序。 驅動程式一律會由 acmDriverEnum 函式從最高優先順序列舉為最低優先順序。
所有啟用的驅動程式識別碼都會收到變更通知。 應用程式可以使用 acmDriverAdd 函式搭配 ACM_DRIVERADDF_NOTIFYHWND 旗標來註冊通知訊息。 不會廣播非全域驅動程式標識碼的變更。
當應用程式未指定驅動程式時,優先順序只會用於搜尋順序。 提升驅動程式的優先順序不會影響驅動程式的效能。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | msacm.h |
程式庫 | Msacm32.lib |
Dll | Msacm32.dll |