Condividi tramite


struttura SW_DEVICE_CREATE_INFO (swdevicedef.h)

Descrive le informazioni usate da PnP per creare il dispositivo software.

Sintassi

typedef struct _SW_DEVICE_CREATE_INFO {
  ULONG                     cbSize;
  PCWSTR                    pszInstanceId;
  PCZZWSTR                  pszzHardwareIds;
  PCZZWSTR                  pszzCompatibleIds;
  const GUID                *pContainerId;
  ULONG                     CapabilityFlags;
  PCWSTR                    pszDeviceDescription;
  PCWSTR                    pszDeviceLocation;
  const SECURITY_DESCRIPTOR *pSecurityDescriptor;
} SW_DEVICE_CREATE_INFO, *PSW_DEVICE_CREATE_INFO;

Membri

cbSize

Dimensione in byte di questa struttura. Usarlo come campo di versione. Inizializzarlo in sizeof(SW_DEVICE_CREATE_INFO).

pszInstanceId

Stringa che rappresenta l'ID istanza parte dell'ID istanza del dispositivo . Questo valore viene usato per IRP_MN_QUERY_IDBusQueryInstanceID. Poiché tutti i dispositivi software sono considerati dispositivi "UniqueId", questa stringa deve essere un nome univoco per tutti i dispositivi in questo enumeratore di dispositivi software.

pszzHardwareIds

Elenco di stringhe per gli ID hardware per il dispositivo software. Questo valore viene usato per IRP_MN_QUERY_IDBusQueryHardwareIDs. Se un client prevede l'installazione di un pacchetto driver nel dispositivo, il client deve specificare gli ID hardware.

pszzCompatibleIds

Elenco di stringhe per gli ID compatibili per il dispositivo software. Questo valore viene usato per IRP_MN_QUERY_IDBusQueryCompatibleIDs. Se un client prevede l'installazione di un pacchetto driver di classe nel dispositivo, il client specifica ID compatibili che corrispondono al pacchetto driver di classe. Se non è necessario un pacchetto driver, è consigliabile specificare un ID compatibile per classificare il tipo di dispositivo software. Oltre agli ID compatibili specificati in questo membro, SWD\Generic e possibilmente SWD\GenericRaw verranno sempre aggiunti come ID meno specifici compatibili.

pContainerId

Valore utilizzato per controllare l'ID contenitore di base per il dispositivo software. Questo valore verrà usato per IRP_MN_QUERY_IDBusQueryContainerIDs. Per situazioni tipiche, è consigliabile impostare questo membro su NULL e usare il flag SWDeviceCapabilitiesRemovable per controllare se il dispositivo eredita l'ID contenitore dell'elemento padre o se PnP assegna un nuovo ID contenitore casuale. Per altre informazioni su come influisce sull'assegnazione dell'ID contenitore per il dispositivo, vedere Panoramica della funzionalità di dispositivo rimovibile. Se il client deve controllare in modo esplicito l'ID contenitore, specificare un GUID nella variabile a cui punta questo membro. In generale, non è consigliabile specificare NULL_GUID per l'ID contenitore. Per altre informazioni sugli ID contenitore e sul significato speciale di NULL_GUID, vedere Panoramica degli ID contenitore.

CapabilityFlags

Combinazione di valori SW_DEVICE_CAPABILITIES combinati tramite un'operazione OR bit per bit. Il valore risultante specifica le funzionalità del dispositivo software. Le funzionalità che è possibile specificare quando si crea un dispositivo software sono un subset delle funzionalità che un driver del bus può specificare usando la struttura DEVICE_CAPABILTIES. Sono supportate solo le funzionalità che hanno senso per consentire la modifica per un dispositivo solo software. Il resto riceve i valori predefiniti appropriati. Di seguito sono riportati i valori possibili:

Valore Significato
SWDeviceCapabilitiesNone
0x00000000
Non sono state specificate funzionalità.
SWDeviceCapabilitiesRemovable
0x00000001
Questo bit specifica che il dispositivo è rimovibile dal relativo elemento padre. L'impostazione di questo flag equivale a un driver del bus che imposta il membro rimovibile della struttura DEVICE_CAPABILTIES per un PDO.
SWDeviceCapabilitiesSilentInstall
0x00000002
Questo bit elimina l'interfaccia utente che normalmente viene visualizzata durante l'installazione. L'impostazione di questo flag equivale a un driver del bus che imposta il membro SilentInstall della struttura DEVICE_CAPABILTIES per un PDO.
SWDeviceCapabilitiesNoDisplayInUI
0x00000004
Questo bit impedisce la visualizzazione del dispositivo in un'interfaccia utente. L'impostazione di questo flag equivale a un driver del bus che imposta il membro di NoDisplayInUI della struttura di DEVICE_CAPABILTIES per un PDO.
SWDeviceCapabilitiesDriverRequired
0x00000008
Specificare questo bit quando il client vuole caricare un driver nel dispositivo e quando questo driver è necessario per la corretta funzione della funzionalità del client.

Quando si specifica questo bit, è necessario compilare almeno uno dei pszzHardwareIds o pszzCompatibleIds.

Se questo bit viene specificato e se non è possibile trovare un driver, il dispositivo mostra un bang giallo in Gestione dispositivi per indicare che il dispositivo presenta un problema e gli strumenti di risoluzione dei problemi segnalano questo problema come dispositivo. L'impostazione di questo bit equivale a un driver del bus che non imposta il membro RawDeviceOK della struttura DEVICE_CAPABILTIES per un PDO.

Quando si specifica questo bit, il driver è proprietario della creazione di interfacce per il dispositivo e non è possibile chiamare SwDeviceInterfaceRegister per il dispositivo.

pszDeviceDescription

Stringa che contiene il testo visualizzato per il nome del dispositivo nell'interfaccia utente. Questo valore viene usato per IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription.

nota  

Quando un INF viene confrontato con il dispositivo, il nome dell'INF esegue l'override di questo nome, a meno che non vengano eseguiti passaggi per mantenere questo nome.

È consigliabile che questa stringa sia un riferimento a una risorsa localizzabile. Per la sintassi di riferimento alle risorse, vedere DEVPROP_TYPE_STRING_INDIRECT.

 

pszDeviceLocation

Stringa che contiene il testo visualizzato per la posizione del dispositivo nell'interfaccia utente. Questo valore viene usato per IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation.

Nota Specificare una posizione non è comune.
 

pSecurityDescriptor

Puntatore a una struttura SECURITY_DESCRIPTOR che contiene le informazioni di sicurezza associate al dispositivo software. Se questo membro è NULL, l' I/O Manager assegna il descrittore di sicurezza predefinito al dispositivo. Se è necessario un descrittore di sicurezza personalizzato, specificare un descrittore di sicurezza auto-relativo.

Osservazioni

Puoi specificare queste informazioni solo in fase di creazione e non puoi chiamare successivamente l'API del dispositivo software per modificare queste informazioni, impostando ad esempio le proprietà.

Fabbisogno

Requisito Valore
intestazione swdevicedef.h (include Swdevice.h)

Vedere anche

SwDeviceCreare