CM_NOTIFY_ACTION列舉 (cfgmgr32.h)

此列舉會識別 隨插即用 裝置事件類型。

Syntax

typedef enum _CM_NOTIFY_ACTION {
  CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
  CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
  CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
  CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
  CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
  CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
  CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
  CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
  CM_NOTIFY_ACTION_MAX
} CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION;

常數

 
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL
值: 0
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE。 此動作表示已啟用符合篩選準則的裝置介面。
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE。

此動作表示已停用符合篩選準則的裝置介面。
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE。

此動作表示正在移除裝置的查詢。 若要讓查詢移除成功,請呼叫 CloseHandle 以關閉您已開啟給裝置的任何句柄。 如果您未這麼做,則開啟的句柄會防止此裝置的查詢成功。 如需詳細資訊 ,請參閱註冊裝置介面抵達和裝置移除通知

若要移除查詢,請傳回ERROR_CANCELLED。 不過,建議您不要移除查詢,並藉由關閉已開啟至裝置的任何句柄來允許它發生。
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE。

此動作表示裝置的查詢移除失敗。 如果您在先前通知 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE期間關閉此裝置的句柄,請開啟裝置的新句柄以繼續傳送 I/O 要求給裝置。 如需詳細資訊 ,請參閱註冊裝置介面抵達和裝置移除通知
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE。

將會移除裝置。 如果您仍然擁有裝置的開啟句柄,請呼叫 CloseHandle 以關閉裝置句柄。 如需詳細資訊 ,請參閱註冊裝置介面抵達和裝置移除通知 。 系統可能會傳送 CM_NOTIFY_ACTION_DEVICEREMOVEPENDING 通知,而不傳送對應的 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE 訊息。 在這種情況下,應用程式和驅動程式必須盡可能從裝置遺失中復原。
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE。

裝置已移除。 如果您仍然擁有裝置的開啟句柄,請呼叫 CloseHandle 以關閉裝置句柄。 如需詳細資訊 ,請參閱註冊裝置介面抵達和裝置移除通知 。 系統可能會傳送 CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE 通知,而不傳送對應的 CM_NOTIFY_ACTION_DEVICEQUERYREMOVECM_NOTIFY_ACTION_DEVICEREMOVEPENDING 訊息。 在這種情況下,應用程式和驅動程式必須盡可能從裝置遺失中復原。
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE。 發生驅動程式定義的自定義事件時,會傳送此動作。
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE。 當已列舉符合篩選準則的新裝置實例時,就會傳送此動作。
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE。 當符合篩選準則的裝置實例開始時,就會傳送此動作。
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED
針對此值,請設定 CM_NOTIFY_FILTER 結構的 FilterType 成員
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE。 當符合篩選準則的裝置實例已不存在時,就會傳送此動作。
CM_NOTIFY_ACTION_MAX
請勿使用。

備註

當驅動程式呼叫 CM_Register_Notification 函式時, pCallback 參數會包含指定的 PnP 事件發生時要呼叫之例程的指標。 回呼例程的 Action 參數是 來自CM_NOTIFY_ACTION 列舉的值。

規格需求

需求
標頭 cfgmgr32.h

另請參閱

CM_NOTIFY_FILTER

CM_Register_Notification