Войти

Показать полную графическую версию : Определить текущее состояние устройства


птичка0001
21-01-2021, 13:31
Всем привет!
Предыдущую тему не разрешают разблокировать, поэтому была создана новая.
1. SetupAPI: Определить не изменение состояния, а текущее состояние устройства.
2. SetupAPI: Предоставить ссылку на то, как хорошо API задокументирован, т.е. предоставить ссылку на документацию, конкретизировать. Предоставить ссылку на конкретный пример.
3. Да/нет: делать сие из SetupAPI?
4. Отключить/включить устройство, раз мы уж здесь собрались.
5. Рассмотреть альтернативы.

DJ Mogarych
21-01-2021, 14:25
Отключить/включить устройство »

Disable-PnpDevice
Enable-PnpDevice

птичка0001
21-01-2021, 14:51
На всякий случай: есть разные Windows API, которые "используют" SetupAPI

Iska
21-01-2021, 18:56
птичка0001, мы сейчас про «просто устройства», или всё про те же внешние аудио «как бы устройства»?

птичка0001
21-01-2021, 19:23
Iska, про все

greg zakharov
22-01-2021, 12:17
DJ Mogarych, вопрос был по SA, а не по WMI, поверх которого созданы упомянутые вами командлеты, - можно разве что сослаться на альтернативы из пятого пункта.

про всеА вы на какой ответ расчитываете? Если в общих чертах по обозначенным вами пунктам, получим примерно следующую картину. Нет ни одного API, которое бы MS документировала от и до (именно по этой причине приходится браться за отладчики и дизассемблеры). Для начала можете глянуть таблицу экспорта:
cdb -z %__appdir__%setupapi.dll -c "!dh -e setupapi;q" | sed "/^[[:space:]]*[0-9]/!d"
Для вас, пожалуй, особый интерес могут вызвать такие функции как CM_Enable_DevNode (https://docs.microsoft.com/en-us/windows/win32/api/cfgmgr32/nf-cfgmgr32-cm_enable_devnode), CM_Disable_DevNode (https://docs.microsoft.com/en-us/windows/win32/api/cfgmgr32/nf-cfgmgr32-cm_disable_devnode) и иже с ними (обратите внимание на форвардинг функций).
Альтернативы... WMI - о нём косвенно сказал DJ Mogarych, NTAPI - но там много нюансов, в частности есть функции вызов которых невозможен без "тушения" SMEP; реестр; самый верный путь - "общение" с устройствами посредством языка ассемблера, - словом, всё зависит от ваших предпочтений и осведомлённости по части устройства винды, а его всецело не по силам знать кому-то одному.

птичка0001
27-01-2021, 21:32
greg zakharov, спасибо за ответ.

Тогда и CfgMgr32 в альтернативы.

И я... до сих пор не очень понимаю... зачем Вы начинали вести речь о HAL, рекомендовали проводить опыты про впихиванию фольги в разъем 3.5 мм... Сейчас перечитываю Руссиновича... и после всего я не понимаю, какую конечную цель Вы преследовали. Без сарказма, пожалуйста.

greg zakharov
27-01-2021, 22:12
Тогда и CfgMgr32 в альтернативы.Какбэ, оже есьмъ часть того же SA.
... зачем Вы начинали вести речь о HAL...По-хорошему, сие лучше обсуждать в частном порядке, например, в той же телеге, но из-за ничем немотивированного бана... - ¯\_(ツ)_/¯
рекомендовали проводить опыты про впихиванию фольги в разъем 3.5 мм...Какие у вас, однако, фантазии... Ну, если бы вы проделали сей опыт, кое-что бы вам открылось в ином ракурсе. Обычно так включается радио на смартфоне, когда под рукой нет гарнитуры.
Сейчас перечитываю Руссиновича...Для чего? У вас есть мозг, руки, отладчик - вперёд.
и после всего я не понимаю, какую конечную цель Вы преследовали.Нести массветления в просветы. Ээм, наоборот - просветление в массы.
Без сарказма, пожалуйста.(С) "Я - ложка дёгтя в бочке мёда... нарыв на заднице..."

Iska
27-01-2021, 22:22
(С) "Я - ложка дёгтя в бочке мёда... нарыв на заднице..." »
Вы — как Zero Gravity с forum.farmanager.com ;).

птичка0001
27-01-2021, 22:33
Тогда и CfgMgr32 в альтернативы
Какбэ, оже есьмъ часть того же SA
Porting code from SetupApi to CfgMgr32 (https://docs.microsoft.com/en-us/windows-hardware/drivers/install/porting-from-setupapi-to-cfgmgr32)


Хех, ясненько :)

greg zakharov
27-01-2021, 23:15
Вы — как Zero Gravity с forum.farmanager.comТо была всего лишь цитата из первого "Die Hard", так что вполне может разойтись в массы.
Хех, ясненько :)До вашего сознания, видимо, не дошли слова о форвардинге функций. Шош...
┌─[E:\sandbox]
└λ cdb -z %__appdir__%setupapi.dll -c "!dh -e setupapi;q"
...
ordinal hint target name
1 0 CMP_GetBlockedDriverInfo (forwarded to cfgmgr32.CMP_GetBlockedDriverInfo)
2 1 CMP_GetServerSideDeviceInstallFlags (forwarded to cfgmgr32.CMP_GetServerSideDeviceInstallFlags)
3 2 CMP_Init_Detection (forwarded to cfgmgr32.CMP_Init_Detection)
4 3 CMP_Report_LogOn (forwarded to cfgmgr32.CMP_Report_LogOn)
5 4 CMP_WaitNoPendingInstallEvents (forwarded to cfgmgr32.CMP_WaitNoPendingInstallEvents)
6 5 CMP_WaitServicesAvailable (forwarded to cfgmgr32.CMP_WaitServicesAvailable)
7 6 CM_Add_Driver_PackageW (forwarded to cfgmgr32.CM_Add_Driver_PackageW)
8 7 CM_Add_Empty_Log_Conf (forwarded to cfgmgr32.CM_Add_Empty_Log_Conf)
9 8 CM_Add_Empty_Log_Conf_Ex (forwarded to cfgmgr32.CM_Add_Empty_Log_Conf_Ex)
10 9 CM_Add_IDA (forwarded to cfgmgr32.CM_Add_IDA)
11 10 CM_Add_IDW (forwarded to cfgmgr32.CM_Add_IDW)
12 11 CM_Add_ID_ExA (forwarded to cfgmgr32.CM_Add_ID_ExA)
13 12 CM_Add_ID_ExW (forwarded to cfgmgr32.CM_Add_ID_ExW)
14 13 CM_Add_Range (forwarded to cfgmgr32.CM_Add_Range)
15 14 CM_Add_Res_Des (forwarded to cfgmgr32.CM_Add_Res_Des)
...
Или же вы так и будете продолжать читать намазы на доки MS?

птичка0001
28-01-2021, 00:45
Ну... перед тем, как ответить, я посмотрела вот эту (http://redplait.blogspot.com/2010/11/setupapidll-exports.html) табличку, так как на текуший момент у меня нет Windows и я уже более 2 лет не использую данную ОС.

1)Forwarded to cfgmgr32
2)Forwarded to devrtl

Или же вы так и будете продолжать читать намазы на доки MS?
И продолжу читать... Как Вы там сказали? Маневр ортодоксальной представительницы женского пола? Он и есть.

Аминь.

greg zakharov
28-01-2021, 18:53
И продолжу читать...Дело, как говорится, хозяйственного мыла.
Как Вы там сказали?그래 당신은 박해하고 있습니다!

птичка0001
28-01-2021, 20:00
У меня нет вопросов, но спасибо :) Возможно, у других участников конференции будут вопросы.
Надеюсь, Вы знаете, на что идете, публикуя контакт публично, ибо написать может кто угодно. Я бы отредактировала сообщение.

greg zakharov
28-01-2021, 22:29
Ну, ежели вы настаиваете...

greg zakharov
29-01-2021, 10:53
птичка0001, если ещё актуально - хаконавтика заработала снова по своему прежнему адресу.

птичка0001
01-02-2021, 11:33
Из сообщения #10:
This topic provides code examples that show how to port code that uses Setupapi.dll functionality to use Cfgmgr32.dll instead. Porting your code allows you to run your code on the Universal Windows Platform (UWP), which does not support SetupApi. A subset of CfgMgr32 is supported on UWP
Если Вам что-то не нравится, Вы можете сие обосновать и изменить документацию.

greg zakharov, Вы ведете канал на яндексе (или яндекс мессенджер). Дело в том, что в IT тусовке сие не пользуется популярностью. Зайдите на тот же хабр — какие там будут самые обсуждаемые мессенджеры? У Вас просто не будет той аудитории, на которую рассчитаны Ваши посты. А где Вы там будете публиковаться — это Ваш выбор.

greg zakharov
01-02-2021, 23:02
птичка0001, о UWP, который к тому же не входит в круг моих интересов и компетенции, речи не было. Что касается документации... ммм... там очень много нужно переправить, а это время, нервы и средства к существованию. Можно было бы продать почку и на врученные деньги комсомольцем-добровольцем, но за это спасибо никто не скажет.
У Вас просто не будет той аудитории, на которую рассчитаны Ваши посты.Желаете выступить в роли моего менеджера? :) Признаться, с самого начала не было никакого умысла собирать аудиторию. Просто заметки на полях. На другом канале вообще никакой аудитории, но это никак не напрягает. Вообще, если перебираться, скажем, в телеграмм, скорее всего придётся менять и формат от просто заметок, до уровня отладчика-сознания. Так что просто удалил подпись, чтобы ссылка не маячила.

icq99999999
07-02-2021, 10:51
Рассмотреть альтернативы. »
мне пришлось сделать другой скрипт так как предыдущее решение не всегда правильно срабатывало, понятно что скрипт совсем не универсален но это лучше чем ничего(но я делал его для себя чтоб переключать наушники/tv одной кнопкой)
AutoHotkey:
F3::
Run, c:\windows\system32\control.exe mmsys.cpl
WinWaitActive, Звук
WinSet, AlwaysOnTop, On, Звук
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
ControlGet, TvON, Enabled, , Button1
ControlGet, nodefault, Enabled, , Button2
If (TvON = 0)
{
MsgBox, tv off
return
}
If (nodefault = 1){
send {tab}
send {tab}
send {enter}
} Else {
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
; ControlClick, Button2, A
send {tab}
send {tab}
send {enter}
}
WinClose, Звук
return

птичка0001
08-02-2021, 17:27
icq99999999, Вам по-прежнему нужно вот это (https://docs.microsoft.com/en-us/windows/win32/coreaudio/device-state-xxx-constants), но Вас чем-то сие не устраивает. Скорее всего, и с AutoHotkey/AutoIt можно решить Вашу задачу, но это не ко мне. Кстати, до сих пор непонятно, что Вы делаете и зачем, ибо каждый раз задача видоизменяется. В прошлой теме у нас был devcon и иже с ним.
У icq99999999 windows 7, насчет Powershell он пишет:
можно поставить




© OSzone.net 2001-2012