Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Implementazione del driver client UDE per determinare le funzionalità supportate dal controller host USB emulato.
Sintassi
EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY EvtUdecxWdfDeviceQueryUsbCapability;
NTSTATUS EvtUdecxWdfDeviceQueryUsbCapability(
[in] WDFDEVICE UdecxWdfDevice,
[in] PGUID CapabilityType,
[in] ULONG OutputBufferLength,
[out, optional] PVOID OutputBuffer,
[out] PULONG ResultLength
)
{...}
Parametri
[in] UdecxWdfDevice
Handle per un oggetto dispositivo framework che rappresenta il controller. Il driver client ha inizializzato questo oggetto nella chiamata precedente a UdecxWdfDeviceAddUsbDeviceEmulation.
[in] CapabilityType
Puntatore a un GUID che specifica la funzionalità richiesta. I possibili valori di PGUID sono i seguenti:
- GUID_USB_CAPABILITY_CHAINED_MDLS
- GUID_USB_CAPABILITY_SELECTIVE_SUSPEND
- GUID_USB_CAPABILITY_FUNCTION_SUSPEND
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_HIGH_SPEED_COMPATIBLE
- GUID_USB_CAPABILITY_DEVICE_CONNECTION_SUPER_SPEED_COMPATIBLE
[in] OutputBufferLength
Lunghezza, in byte, del buffer di output della richiesta, se è disponibile un buffer di output.
[out, optional] OutputBuffer
Puntatore a una posizione che riceve l'indirizzo del buffer. Alcune funzionalità potrebbero dover fornire informazioni aggiuntive all'estensione della classe di emulazione del dispositivo USB (UdeCx) in questo buffer.
[out] ResultLength
Posizione che, in caso di restituzione, contiene le dimensioni, in byte, delle informazioni archiviate nella funzione di callback archiviata in OutputBuffer.
Valore restituito
Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(status) è TRUE. Se una funzionalità non è supportata, il driver client può restituire NT_SUCCESS(status) uguale a FALSE, ad esempio STATUS_UNSUCCESSFUL.
Osservazioni
L'estensione della classe richiama questa funzione di callback implementata dal driver client quando l'estensione della classe riceve una richiesta per determinare le funzionalità del controller emulato. Il callback viene richiamato solo dopo che EvtDriverDeviceAdd restituito, in genere in EvtDevicePrepareHardware. Questo callback non può essere richiamato dopo che EvtDeviceReleaseHardware restituito.
L'estensione della classe segnala questi GUID di funzionalità, come non supportato:
- GUID_USB_CAPABILITY_STATIC_STREAMS
- GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL
Per altri GUID, l'estensione della classe richiama l'implementazione del driver client, ad esempio GUID_USB_CAPABILITY_CHAINED_MDLS. È previsto che il driver client determini il supporto per le richieste di I/O che usano un MDL concatenato. Se questa funzionalità è supportata, il membro TransferBufferMdl del CONTIENE il buffer della richiesta. Se MDL concatenato non è supportato, il driver client non riceve TransferBufferMdl valori che puntano a MDLs concatenati.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10 |
server minimo supportato | Windows Server 2016 |
piattaforma di destinazione | Finestre |
versione minima di KMDF | 1.15 |
intestazione | udecxwdfdevice.h (include Udecx.h) |
IRQL | PASSIVE_LEVEL |
Vedere anche
architettura : UDE (USB Device Emulation)