|
| template<typename step_t> |
| void | devices (argsargs &argsargs, const char *done, step_t &&step) |
| | a step on the devices of every hardware id, the inf optional - a hardware id failing is reported, the next one taken, and the verb fails at the end: the installer's exit code, a custom action's failure
|
| std::string | enumerator (const std::string &hwid) const |
| virtual bool | head () const noexcept |
| virtual void | help (argsargs &argsargs) |
| virtual void | help_head () const noexcept |
| virtual void | indent (argsargs &argsargs) |
| virtual void | install (argsargs &argsargs) |
| virtual void | no_args (const argsargs &argsargs) |
| void | resolve (const std::string &inf) |
| | the class and the hardware ids for a run: what the arguments left unknown comes off the inf
|
| virtual void | restart (argsargs &argsargs) |
| | the devices brought back where they stand, on the package that ranks best now
|
| virtual void | scan (argsargs &argsargs) |
| | the devices reenumerated where they stand, an installation that failed or found no package retried
|
| auto | select (const std::string &id) |
| virtual void | uninstall (argsargs &argsargs) |
| virtual void | version (const argsargs &argsargs={}) |
|
| std::string | bus |
| | the devices' enumerator where the product names one, empty: each hardware id's own prefix
|
| std::map< std::deque< std::string >, dispatch > | dictionary |
| bool | given {} |
| | a hwid sub parameter replaced the product's list
|
| ::GUID | guid |
| | the devices' class, GUID_NULL unknown
|
| std::deque< std::string > | hwids |
| | the devices, as an inf's models name them (USB\VID_xxxx&PID_xxxx)
|
| const char * | name {} |
| struct dx::parser:: { ... } | parameter |
| decltype(dispatch::parameter) | sub |
| | the sub parameters –install and –uninstall share
|
the driver package installer: a product's <Product>Install.exe, the installer's custom action (dxd_installer.wxs) and a command line alike
--install [class <guid>] [hwid <id> [hwid ..]] <inf>: purges every package with a model of the hardware ids (a competitor for the same devices - the alternative package of the product, an older release - would otherwise be ranked against the new one) and installs the package through setup::install(); --uninstall [class <guid>] [hwid <id> ..] [inf]: removes the devices' nodes and every package of theirs, then rescans the bus; --restart [..] [inf] installs on every device where it stands the package that ranks best (setup::reinstall(), a software device's node kept); --scan [..] [inf] reenumerates the devices, retrying an installation that failed. The devices' class and hardware ids are the product's (the constructor), a sub parameter overrides them - the first hwid replaces the list, further ones add - and what is still unknown comes off the inf given (its ClassGUID, its models); the enumerator is the product's where it names one - a software device's hardware id carries no prefix, SWD enumerates it - and each hardware id's own prefix otherwise.
template<typename step_t>
| void dx::install::parser::devices |
( |
args & | args, |
|
|
const char * | done, |
|
|
step_t && | step ) |
|
inlineprotected |
a step on the devices of every hardware id, the inf optional - a hardware id failing is reported, the next one taken, and the verb fails at the end: the installer's exit code, a custom action's failure