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 必須是 NULLdwPriority 必須是零,而且只能設定ACM_DRIVERPRIORITYF_BEGIN旗標。
ACM_DRIVERPRIORITYF_DISABLE 如果目前已啟用,應該停用 ACM 驅動程式。 停用停用的驅動程式不會執行任何動作。
ACM_DRIVERPRIORITYF_ENABLE 如果目前停用,應該啟用 ACM 驅動程式。 啟用已啟用的驅動程式不會執行任何動作。
ACM_DRIVERPRIORITYF_END 呼叫工作想要重新啟用變更通知廣播。 應用程式必須使用 ACM_DRIVERPRIORITYF_BEGIN 旗標呼叫 acmDriverPriority ,並針對每個成功的呼叫呼叫呼叫ACM_DRIVERPRIORITYF_END。 請注意, hadid 必須是 NULLdwPriority 必須是零,而且只能設定ACM_DRIVERPRIORITYF_END旗標。

傳回值

如果成功或發生錯誤,則傳回零。 可能的錯誤值包括下列專案。

傳回碼 Description
MMSYSERR_ALLOCATED
延後廣播鎖定是由不同的工作所擁有。
MMSYSERR_INVALFLAG
至少有一個旗標無效。
MMSYSERR_INVALHANDLE
指定的句柄無效。
MMSYSERR_INVALPARAM
至少有一個參數無效。
MMSYSERR_NOTSUPPORTED
指定的驅動程式不支援要求的作業。 例如,本機和通知驅動程式標識碼不支援 (優先順序,但可以啟用和停用) 。 如果應用程式針對本機和通知驅動程式標識子指定 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

另請參閱

音訊壓縮函式

音訊壓縮管理員