Condividi tramite


SW_DEVICE_CREATE_CALLBACK funzione di callback (swdevice.h)

Fornisce un dispositivo con backup nel Registro di sistema e consente al chiamante di effettuare quindi chiamate alle funzioni API del dispositivo software con l'handle hSwDevice .

Sintassi

SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;

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

Parametri

[in] hSwDevice

Handle per il dispositivo software.

[in] CreateResult

HRESULT che indica se l'enumerazione del dispositivo software ha avuto esito positivo.

[in, optional] pContext

Contesto fornito facoltativamente dall'app client a SwDeviceCreate.

[in, optional] pszDeviceInstanceId

ID istanza del dispositivo assegnato al dispositivo.

Valore restituito

nessuno

Osservazioni

Il sistema operativo chiama la funzione di callback SW_DEVICE_CREATE_CALLBACK dopo che PnP enumera il dispositivo. Dopo aver chiamato la funzione di callback, il dispositivo ha il backup nel Registro di sistema e le chiamate alle funzioni API del dispositivo software possono essere eseguite usando l'handle hSwDevice . È anche possibile usare altre API che funzionano con i dispositivi per il dispositivo creato.

L'enumerazione PnP di un dispositivo è il primo passaggio sottoposto a un dispositivo. Dopo l'enumerazione PnP del dispositivo, il dispositivo ha solo il backup del Registro di sistema e è possibile impostare le proprietà sul dispositivo. Solo perché PnP enumera il dispositivo, il dispositivo non è ancora stato avviato e nessun driver per il dispositivo ha ancora registrato o abilitato interfacce. In molti casi, è consigliabile che le app attendano l'arrivo dell'interfaccia del dispositivo se vogliono usare il dispositivo.

Nota La funzione di callback fornisce l'ID istanza del dispositivo per il dispositivo creato. È consigliabile che i chiamanti dell'API dispositivo software non tentino di indovinare o costruire l'ID istanza del dispositivo stesso; usare sempre il valore fornito dalla funzione callback.
 
La funzione di callback verrà eseguita in un thread di thread-pool arbitrario. Le app client possono eseguire il maggior numero di operazioni necessarie nella funzione di callback.

In Windows 8 non è possibile chiamare SwDeviceClose all'interno della funzione di callback. In questo modo si verificherà un deadlock. Prestare attenzione al rilascio di un oggetto con conteggio di riferimento che chiamerà SwDeviceClose quando viene eseguito il distruttore. In Windows 8.1 questa restrizione viene revocata e è possibile chiamare SwDeviceClose all'interno della funzione di callback.

Controllare sempre HRESULT passato a CreateResult per assicurarsi che PnP sia stato in grado di enumerare il dispositivo.

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Desktop
Intestazione swdevice.h

Vedi anche

SwDeviceCreate