WdfDeviceSetStaticStopRemove 函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

WdfDeviceSetStaticStopRemove 方法會通知架構是否可以停止和移除裝置。

語法

void WdfDeviceSetStaticStopRemove(
  [in] WDFDEVICE Device,
  [in] BOOLEAN   Stoppable
);

參數

[in] Device

架構裝置物件的句柄。

[in] Stoppable

布爾值,指出是否可以停止和移除指定的裝置。 如果 為TRUE,則可以停止和移除裝置。 如果 為 FALSE,則無法停止和移除裝置。

傳回值

備註

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

根據預設,裝置可以停止和移除。 因此,只有在驅動程式必須暫時將 Stoppable 參數設定為 FALSE 時,驅動程式才會呼叫 WdfDeviceSetStaticStopRemove。 例如,控制 DVD 寫入器的驅動程式可能會先呼叫 WdfDeviceSetStaticStopRemove ,並將 Stoppable 設為 FALSE ,再開始將 DVD 消耗。 驅動程式完成 DVD 消耗之後,它會再次呼叫 WdfDeviceSetStaticStopRemove ,並將 Stoppable 設定為 TRUE

如果您的驅動程式的裝置支援特殊檔案 (請參閱 WdfDeviceSetSpecialFileSupport) ,架構將不會允許停止或移除裝置。 在這裡情況下,您的驅動程式不需要呼叫 WdfDeviceSetStaticStopRemove

驅動程式必須比對 WdfDeviceSetStaticStopRemove 的每個呼叫,並將 Stoppable 設為 FALSE ,並呼叫 WdfDeviceSetStaticStopRemove 並將 Stoppable 設為 TRUE

呼叫 WdfDeviceSetStaticStopRemove 並將 Stoppable 設為 FALSE 並不會防止架構在意外移除 (意外移除) 時通知驅動程式。

如需如何防止操作系統停止裝置的詳細資訊,請參閱 處理停止裝置的要求

範例

下列程式代碼範例會通知架構指定的裝置無法停止和移除。

WdfDeviceSetStaticStopRemove(
                             device,
                             FALSE
                             );

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfdevice.h (包含 Wdf.h)
程式庫 Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)