共用方式為


SW_DEVICE_CREATE_CALLBACK回呼函式 (swdevice.h)

在登錄中提供支援裝置,並允許呼叫者接著使用 hSwDevice 句柄呼叫軟體裝置 API 函式。

語法

SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;

void SwDeviceCreateCallback(
  [in]           HSWDEVICE hSwDevice,
  [in]           HRESULT CreateResult,
  [in, optional] PVOID pContext,
  [in, optional] PCWSTR pszDeviceInstanceId
)
{...}

參數

[in] hSwDevice

軟體裝置的句柄。

[in] CreateResult

HRESULT,指出軟體裝置的列舉是否成功。

[in, optional] pContext

用戶端應用程式選擇性提供給 SwDeviceCreate 的內容。

[in, optional] pszDeviceInstanceId

PnP 指派給裝置的裝置實例標識碼。

傳回值

備註

操作系統會在 PnP 列舉裝置之後呼叫 SW_DEVICE_CREATE_CALLBACK 回呼函式。 呼叫回呼函式之後,裝置已在登錄中備份,並使用 hSwDevice 句柄來呼叫軟體裝置 API 函式。 您也可以使用其他 API 來處理所建立裝置的裝置。

裝置的 PnP 列舉是裝置進行的第一個步驟。 在裝置的 PnP 列舉之後,裝置只有登錄備份,而且您可以針對裝置設定屬性。 只是因為 PnP 列舉了裝置,裝置尚未啟動,且尚未註冊或啟用裝置的驅動程式。 在許多情況下,我們建議應用程式在想要使用裝置時等候裝置介面抵達。

注意 回呼函式會提供所建立裝置的裝置實例標識碼。 我們建議軟體裝置 API 的呼叫端不會嘗試猜測或自行建構裝置實例識別碼;一律使用回呼函式所提供的值。
 
回呼函式會在任意線程集區線程上執行。 用戶端應用程式可以在回呼函式中視需要執行許多工作。

在 Windows 8 中,您無法在回呼函式內呼叫 SwDeviceClose。 這樣做會導致死結。 請小心釋放 ref counted 物件,以在解構函式執行時呼叫 SwDeviceClose 。 在 Windows 8.1 中,此限制會隨即解除,您可以在回呼函式內呼叫 SwDeviceClose

請務必檢查傳遞至 CreateResult 的 HRESULT,以確定 PnP 能夠列舉裝置。

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 桌面
標頭 swdevice.h

另請參閱

SwDeviceCreate