Partager via


SW_DEVICE_CREATE_CALLBACK fonction de rappel (swdevice.h)

Fournit à un appareil une sauvegarde dans le registre et permet à l’appelant d’effectuer ensuite des appels aux fonctions de l’API d’appareil logiciel avec le handle hSwDevice .

Syntaxe

SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;

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

Paramètres

[in] hSwDevice

Handle de l’appareil logiciel.

[in] CreateResult

HRESULT qui indique si l’énumération de l’appareil logiciel a réussi.

[in, optional] pContext

Contexte éventuellement fourni par l’application cliente à SwDeviceCreate.

[in, optional] pszDeviceInstanceId

L’appareil instance’ID attribué par PnP à l’appareil.

Valeur de retour

None

Remarques

Le système d’exploitation appelle la fonction de rappel SW_DEVICE_CREATE_CALLBACK après que PnP a énuméré l’appareil. Une fois la fonction de rappel appelée, l’appareil est sauvegardé dans le Registre et les appels aux fonctions d’API d’appareil logiciel peuvent être effectués à l’aide du handle hSwDevice . Vous pouvez également utiliser d’autres API qui fonctionnent avec des appareils pour l’appareil créé.

L’énumération PnP d’un appareil est la première étape qu’un appareil subit. Après l’énumération PnP de l’appareil, l’appareil dispose uniquement d’un stockage de registre, et vous pouvez définir des propriétés sur l’appareil. Juste parce que PnP a énuméré l’appareil, l’appareil n’a pas encore démarré, et aucun pilote pour l’appareil n’a encore inscrit ou activé des interfaces. Dans de nombreux cas, nous recommandons que les applications attendent l’arrivée de l’interface de l’appareil si elles souhaitent utiliser l’appareil.

Note La fonction de rappel fournit l’ID de instance de l’appareil créé. Nous recommandons aux appelants de l’API d’appareil logiciel de ne pas essayer de deviner ou de construire eux-mêmes l’ID de instance de l’appareil ; ils utilisent toujours la valeur fournie par la fonction de rappel.
 
La fonction de rappel s’exécute sur un thread de pool de threads arbitraire. Les applications clientes peuvent effectuer autant de travail que nécessaire dans la fonction de rappel.

Dans Windows 8, vous ne pouvez pas appeler SwDeviceClose à l’intérieur de la fonction de rappel. Cela entraîne un interblocage. Veillez à libérer un objet comptabilisé par références qui appellera SwDeviceClose lors de l’exécution de son destructeur. Dans Windows 8.1, cette restriction est levée et vous pouvez appeler SwDeviceClose à l’intérieur de la fonction de rappel.

Toujours case activée le HRESULT passé à CreateResult pour vous assurer que PnP a pu énumérer l’appareil.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Desktop (Expérience utilisateur)
En-tête swdevice.h

Voir aussi

SwDeviceCreate