#include <dxd_usb_device.h>
|
| void | conclude () override |
| | deselects the configuration and lets the bus interface go while the bus below still answers: past the remove it is gone with the PDO
|
| unsigned char | configuration () const |
| | return available USB configurations
|
| os_result | configuration (unsigned char configuration) |
| | choose USB configuration
|
| unsigned char | configurations () const |
| | return current USB configuration
|
| template<typename... args_t> |
| | device (args_t &&... args) |
| | WDK: USB device constructor.
|
| const decltype(dx::usb::descriptor::endpoint) * | endpoint (unsigned char interface, unsigned char setting, unsigned char address) |
| | the endpoint descriptor of an interface setting's endpoint, from the selected configuration
|
| os_result | frame (uint64_t &frame, int64_t *timestamp=nullptr) const |
| | the current bus frame; timestamp: dxd::timestamp() of the readout
|
| const ::USBD_INTERFACE_INFORMATION * | interface (unsigned char index, unsigned char setting=0) |
| virtual os_result | ioctl (unsigned int ioctl, const void *, size_t size_in, void *out, size_t size_out, size_t &size) |
| | control I/O handler, reached through client::ioctl()
|
| | operator::DEVICE_OBJECT * () const |
| template<typename data_t> |
| os_result | request (const dx::usb::control &control, data_t &data) |
| os_result | request (const dx::usb::control &control, void *data, size_t &size) |
| speed | speed () const |
| os_result | string (unsigned char idx, char *string, unsigned char &chars) |
| template<typename string_t> |
| os_result | string (unsigned char idx, string_t &string) |
| | ~device () override |
|
| virtual os_result | boot () |
| | a device loading its firmware after enumeration reports readiness here, ahead of the configuration: the descriptors it is configured from are the booted one's
|
| virtual client * | client_create () |
| | user client factory
|
| os_result | launch () override |
| | WDK: USB device initialization callback.
|
◆ speed
template<typename base_t = dxd::device>
| Enumerator |
|---|
| low | |
| full | |
| high | |
| usb1 | |
| usb2 | |
◆ device()
template<typename base_t = dxd::device>
template<typename... args_t>
WDK: USB device constructor.
◆ ~device()
template<typename base_t = dxd::device>
◆ boot()
template<typename base_t = dxd::device>
a device loading its firmware after enumeration reports readiness here, ahead of the configuration: the descriptors it is configured from are the booted one's
◆ client_create()
| virtual client * dxd::device::client_create |
( |
| ) |
|
|
inlineprotectedvirtualinherited |
◆ conclude()
template<typename base_t = dxd::device>
deselects the configuration and lets the bus interface go while the bus below still answers: past the remove it is gone with the PDO
Reimplemented from dxd::device.
◆ configuration() [1/2]
template<typename base_t = dxd::device>
return available USB configurations
◆ configuration() [2/2]
template<typename base_t = dxd::device>
choose USB configuration
removes interface cache
deselects current configuration on request #0
obtains the configuration descriptor,
obtains all descriptors,
enumerates interfaces in the configuration,
allocates and builds an URB for the select-configuration request,
creates interface cache
enumerates the pipes in the interface information array, which is now filled with pipe information.
◆ configurations()
template<typename base_t = dxd::device>
return current USB configuration
◆ endpoint()
template<typename base_t = dxd::device>
| const decltype(dx::usb::descriptor::endpoint) * dxd::usb::device< base_t >::endpoint |
( |
unsigned char | interface, |
|
|
unsigned char | setting, |
|
|
unsigned char | address ) |
|
inline |
the endpoint descriptor of an interface setting's endpoint, from the selected configuration
◆ frame()
template<typename base_t = dxd::device>
the current bus frame; timestamp: dxd::timestamp() of the readout
◆ interface()
template<typename base_t = dxd::device>
| const ::USBD_INTERFACE_INFORMATION * dxd::usb::device< base_t >::interface |
( |
unsigned char | index, |
|
|
unsigned char | setting = 0 ) |
|
inline |
requests settings change,
disposes and creates new interface cache on size change,
and fills interface cache,
◆ ioctl()
| virtual os_result dxd::device::ioctl |
( |
unsigned int | ioctl, |
|
|
const void * | , |
|
|
size_t | size_in, |
|
|
void * | out, |
|
|
size_t | size_out, |
|
|
size_t & | size ) |
|
inlinevirtualinherited |
◆ launch()
template<typename base_t = dxd::device>
|
|
inlineoverrideprotectedvirtual |
WDK: USB device initialization callback.
obtains the device descriptor,
and select USB configuration #1.
Reimplemented from dxd::device.
◆ operator::DEVICE_OBJECT *()
template<typename base_t = dxd::device>
◆ request() [1/2]
template<typename base_t = dxd::device>
template<typename data_t>
- Parameters
-
| control | the USB request control defining the request type |
| data | data to transmit or receive |
◆ request() [2/2]
template<typename base_t = dxd::device>
◆ speed()
template<typename base_t = dxd::device>
- Todo
- implement WDK low/super speed check for dxd::usb::device::speed() the device's own operating speed: a full speed device behind a high speed hub is full speed
◆ string() [1/2]
template<typename base_t = dxd::device>
◆ string() [2/2]
template<typename base_t = dxd::device>
template<typename string_t>
◆ bus
| ::DEVICE_OBJECT* dxd::device::bus |
|
inherited |
◆ config
template<typename base_t = dxd::device>
the selected configuration's descriptors: endpoint attributes live here, a class compliant device is configured from them
◆ pdo
| ::DEVICE_OBJECT* dxd::device::pdo |
|
inherited |
◆ status
◆ [struct]
| struct { ... } dxd::device::wdm |
The documentation for this class was generated from the following file: