dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::hub Class Reference

#include <dx_usb_platform_device.h>

Inheritance diagram for dx::usb::hub:
Collaboration diagram for dx::usb::hub:

Classes

union  port
 a port's connection: the device's descriptor, speed and open pipes More...

Public Member Functions

void ctl (unsigned int ioctl) const
virtual void free () noexcept
 hub (const char *name)
template<typename rx_t>
rx_t ictl (unsigned int ioctl) const
 Windows: member ioctl.
template<typename rx_t>
size_t ictl (unsigned int ioctl, rx_t &rx) const
void initialize (const char *name, ::DWORD access=GENERIC_READ|GENERIC_WRITE, ::DWORD share=FILE_SHARE_READ|FILE_SHARE_WRITE)
 (re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
template<typename rx_t, typename tx_t>
rx_t ioctl (unsigned int ioctl, const tx_t &tx) const
template<typename tx_t, typename rx_t>
size_t ioctl (unsigned int ioctl, const tx_t &tx, rx_t &rx) const
template<typename tx_t>
void octl (unsigned int ioctl, const tx_t &tx) const
 operator const os_event () const noexcept
 operator os_event () noexcept
std::string operator() (unsigned char idx) const
 the device interface path of the hub at port idx (from 1)
 operator::HANDLE () const noexcept
port operator[] (unsigned char idx) const
 the connection at port idx (from 1)

Public Attributes

::USB_HUB_CAPABILITIES_EX capabilities {}
unsigned char ports {}

Static Public Attributes

static constexpr ::GUID guid {0xf18a0e88, 0xc30c, 0x11d0, {0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8}}

Protected Attributes

::HANDLE handle {invalid_t}
::HANDLE process {::GetCurrentProcess()}

Detailed Description

a hub as its driver reports it, usbview's view: per port the device, its speed and the pipes it holds open - the periodic load the host carries below it, the full and low speed one through the hub's transaction translator(s)

Constructor & Destructor Documentation

◆ hub()

dx::usb::hub::hub ( const char * name)
inline

Member Function Documentation

◆ ctl()

void dx::file::ctl ( unsigned int ioctl) const
inlineinherited
Here is the call graph for this function:

◆ free()

◆ ictl() [1/2]

template<typename rx_t>
rx_t dx::file::ictl ( unsigned int ioctl) const
inlineinherited

Windows: member ioctl.

this member retreives data from the device by providing an IOCTL code. the template argument defines the type of data to be retreived. this member is intended as a convinient way to retreive only small amounts of data since there is an intermediate stack copy involved in returning the data.

the underlaying windows API is DeviceIoControl(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363216(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS other than
ERROR_INSUFFICIENT_BUFFERif the output buffer is too small to receive any data
Template Parameters
rx_ttype of rx_t needs to be explicitly specified as it can't be deduced
Here is the call graph for this function:

◆ ictl() [2/2]

template<typename rx_t>
size_t dx::file::ictl ( unsigned int ioctl,
rx_t & rx ) const
inlineinherited
Here is the call graph for this function:

◆ initialize()

void dx::file::initialize ( const char * name,
::DWORD access = GENERIC_READ| GENERIC_WRITE,
::DWORD share = FILE_SHARE_READ| FILE_SHARE_WRITE )
inlineinherited

(re-)initialization the underlaying windows API is CreateFile(). for detailed information see http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

Exceptions
n/amicrosoft does not give information about what possible errors values are provided by its OS
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ioctl() [1/2]

template<typename rx_t, typename tx_t>
rx_t dx::file::ioctl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited
Here is the call graph for this function:

◆ ioctl() [2/2]

template<typename tx_t, typename rx_t>
size_t dx::file::ioctl ( unsigned int ioctl,
const tx_t & tx,
rx_t & rx ) const
inlineinherited
Here is the call graph for this function:
Here is the caller graph for this function:

◆ octl()

template<typename tx_t>
void dx::file::octl ( unsigned int ioctl,
const tx_t & tx ) const
inlineinherited
Here is the call graph for this function:

◆ operator const os_event()

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
dx::resource< invalid_t >::operator const os_event ( ) const
inlinenoexceptinherited

◆ operator os_event()

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
dx::resource< invalid_t >::operator os_event ( )
inlinenoexceptinherited

◆ operator()()

std::string dx::usb::hub::operator() ( unsigned char idx) const
inline

the device interface path of the hub at port idx (from 1)

◆ operator::HANDLE()

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
dx::resource< invalid_t >::operator::HANDLE ( ) const
inlinenoexceptinherited
Here is the caller graph for this function:

◆ operator[]()

port dx::usb::hub::operator[] ( unsigned char idx) const
inline

the connection at port idx (from 1)

Member Data Documentation

◆ capabilities

::USB_HUB_CAPABILITIES_EX dx::usb::hub::capabilities {}

◆ guid

::GUID dx::usb::hub::guid {0xf18a0e88, 0xc30c, 0x11d0, {0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8}}
static

GUID_DEVINTERFACE_USB_HUB: every hub, the root hubs among them

◆ handle

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
::HANDLE dx::resource< invalid_t >::handle {invalid_t}
protectedinherited

◆ ports

unsigned char dx::usb::hub::ports {}

◆ process

template<::HANDLE invalid_t = INVALID_HANDLE_VALUE>
::HANDLE dx::resource< invalid_t >::process {::GetCurrentProcess()}
protectedinherited

The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.