EVT_UDECX_WDF_DEVICE_QUERY_USB_CAPABILITY funzione di callback (udecxwdfdevice.h)
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 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.
Commenti
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 è stato restituito, in genere in EvtDevicePrepareHardware. Questo callback non può essere richiamato dopo la restituzione di EvtDeviceReleaseHardware .
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. Si prevede che il driver client determini il supporto per le richieste di I/O che usano un MDL concatenato. Se questa funzionalità è supportata, il membro TransferBufferMdldell'OGGETTO ESEGUI contiene il buffer della richiesta. Se MDL concatenato non è supportato, il driver client non riceve valori TransferBufferMdl che puntano agli ELENCHI MDL concatenati.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Windows |
Versione KMDF minima | 1.15 |
Intestazione | udecxwdfdevice.h (include Udecx.h) |
IRQL | PASSIVE_LEVEL |