Freigeben über


SW_DEVICE_CREATE_CALLBACK Rückruffunktion (swdevice.h)

Stellt ein Gerät mit Unterstützung in der Registrierung bereit und ermöglicht es dem Aufrufer, dann mit dem hSwDevice-Handle Aufrufe von Funktionen der Softwaregeräte-API zu tätigen.

Syntax

SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;

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

Parameter

[in] hSwDevice

Das Handle für das Softwaregerät.

[in] CreateResult

Ein HRESULT, das angibt, ob die Enumeration des Softwaregeräts erfolgreich war.

[in, optional] pContext

Der Kontext, der optional von der Client-App für SwDeviceCreate bereitgestellt wurde.

[in, optional] pszDeviceInstanceId

Das Gerät instance ID, die PnP dem Gerät zugewiesen hat.

Rückgabewert

Keine

Bemerkungen

Das Betriebssystem ruft die SW_DEVICE_CREATE_CALLBACK Rückruffunktion auf, nachdem PnP das Gerät aufgezählt hat. Nachdem die Rückruffunktion aufgerufen wurde, verfügt das Gerät über eine Unterstützung in der Registrierung, und Aufrufe von Funktionen der Softwaregeräte-API können mithilfe des hSwDevice-Handles ausgeführt werden. Sie können auch andere APIs verwenden, die mit Geräten für das erstellte Gerät funktionieren.

Die PnP-Enumeration eines Geräts ist der erste Schritt, den ein Gerät durchläuft. Nach der PnP-Enumeration des Geräts verfügt das Gerät nur über Eine Registrierungssicherung, und Sie können Eigenschaften für das Gerät festlegen. Nur weil PnP das Gerät aufzählt, wurde das Gerät noch nicht gestartet, und noch kein Treiber für das Gerät hat Schnittstellen registriert oder aktiviert. In vielen Fällen wird empfohlen, dass Apps auf die Geräteschnittstelle warten, wenn sie das Gerät verwenden möchten.

Hinweis Die Rückruffunktion stellt das Gerät instance ID für das erstellte Gerät bereit. Es wird empfohlen, dass Aufrufer der Softwaregeräte-API nicht versuchen, das Gerät instance-ID selbst zu erraten oder zu konstruieren. Verwenden Sie immer den wert, der von der Rückruffunktion bereitgestellt wird.
 
Die Rückruffunktion wird für einen beliebigen Threadpoolthread ausgeführt. Client-Apps können in der Rückruffunktion so viel Arbeit ausführen, wie erforderlich ist.

In Windows 8 können Sie SwDeviceClose nicht innerhalb der Rückruffunktion aufrufen. Dies führt zu einem Deadlock. Achten Sie darauf, ein Ref counted-Objekt freizugeben, das SwDeviceClose aufruft, wenn sein Destruktor ausgeführt wird. In Windows 8.1 wird diese Einschränkung aufgehoben, und Sie können SwDeviceClose innerhalb der Rückruffunktion aufrufen.

Überprüfen Sie immer das HRESULT, das an CreateResult übergeben wird, um sicherzustellen, dass PnP das Gerät auflisten konnte.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Desktop
Kopfzeile swdevice.h

Weitere Informationen

SwDeviceErstellen