Здравствуйте, VictorProg, Вы писали:
VP>Всем привет.
VP>Столкнулся с проблемой одной. Нужно узнать включён ли монитор или нет. VP>Включить и выключить могу, а вото получить Power State не получается.
VP>Делал всё через прерывание 10h.
VP>Использовал функцию 4F10h
VP>Но как результат получил ответ, что функция не поддерживается.
VP>Может кто нибудь покажет пример как это делать?
VP>Заранее спасибо.
Забыл показать код:
mov ax, 4f10h
mov bx, 0002h
xor di, di
mov es, di
int 10h
Здравствуйте, VictorProg, Вы писали:
VP>Здравствуйте, VictorProg, Вы писали:
VP>>Всем привет.
VP>>Столкнулся с проблемой одной. Нужно узнать включён ли монитор или нет. VP>>Включить и выключить могу, а вото получить Power State не получается.
VP>>Делал всё через прерывание 10h.
VP>>Использовал функцию 4F10h
VP>>Но как результат получил ответ, что функция не поддерживается.
если драйвером не поддерживается, то никак
ж@#$ одназначно — т.к. архитектура видеодрайверов не предусматривает
горячий опрос дочерних устройств, тоесть данные при загрузке кэшируются
и все!
Здравствуйте, Daedalus, Вы писали:
D>Здравствуйте, VictorProg, Вы писали:
VP>>Здравствуйте, VictorProg, Вы писали:
VP>>>Всем привет.
VP>>>Столкнулся с проблемой одной. Нужно узнать включён ли монитор или нет. VP>>>Включить и выключить могу, а вото получить Power State не получается.
VP>>>Делал всё через прерывание 10h.
VP>>>Использовал функцию 4F10h
VP>>>Но как результат получил ответ, что функция не поддерживается.
D>если драйвером не поддерживается, то никак D>ж@#$ одназначно — т.к. архитектура видеодрайверов не предусматривает D>горячий опрос дочерних устройств, тоесть данные при загрузке кэшируются D>и все!
Это плохо...
А не подскажете ли как можно получить состояние питания монитора?
Простот тот код я использую в своём драйвере для Виндовс НТ. Думал поможет.
Может есть какой нить другой способ.
Многие говорят, что у них этот способ работает. А у меня нет.
VP>А не подскажете ли как можно получить состояние питания монитора?
VP>Простот тот код я использую в своём драйвере для Виндовс НТ. Думал поможет.
гкхм!
н-да, тяжелый случай!
драйвер случаем не для видеокарты?
раширенный веса-сервис, реализуется именно видеодрайвером.
общение с монитором через i2c запросы, по протоколу типа ddc
в ддк это все есть, смотри экземплы
Здравствуйте, VictorProg, Вы писали:
VP>Здравствуйте, VictorProg, Вы писали:
VP>>Всем привет.
VP>>Столкнулся с проблемой одной. Нужно узнать включён ли монитор или нет. VP>>Включить и выключить могу, а вото получить Power State не получается.
Смотрели ли вы описание прерываний для весы, в интеруптлилт?
Здравствуйте, Daedalus, Вы писали:
VP>>А не подскажете ли как можно получить состояние питания монитора?
VP>>Простот тот код я использую в своём драйвере для Виндовс НТ. Думал поможет.
D>гкхм! D>н-да, тяжелый случай! D>драйвер случаем не для видеокарты? D>раширенный веса-сервис, реализуется именно видеодрайвером. D>общение с монитором через i2c запросы, по протоколу типа ddc D>в ддк это все есть, смотри экземплы
Хм...
Спасибо за ответ.
А можно конкретную линку на экзампл?
Бо там тока шаблоны для дриверов.
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>Здравствуйте, VictorProg, Вы писали:
VP>>Здравствуйте, VictorProg, Вы писали:
VP>>>Всем привет.
VP>>>Столкнулся с проблемой одной. Нужно узнать включён ли монитор или нет. VP>>>Включить и выключить могу, а вото получить Power State не получается.
AWW>Смотрели ли вы описание прерываний для весы, в интеруптлилт?
Да, конечно. Нашёл на одном из форумов линеку с примерами на асме.
Здравствуйте, Daedalus, Вы писали:
D>сообщи для ясности что за драйвер ты пишешь и почему ты в нем так обращаешься с прерываниями
День добрый.
Да, конечно.
Тут дело в следующем.
Была поставлена задача написать прогу,которая следила бы за состоянием питания монитора и выполняла какиенить
действия.
Пытались получить эти сведения получения хэндла на девайс (CreateFile потом DeviceIOControl). Но оказалось, что доступа к девайсу нет. Типа путь неверный.
Пробовали через GetDC а потом GetDevicePowerState. Не работает.
Вот и решили написать некий дривер типа минипорт, который буит обращаться через прерывания к ВЕСА и узнавать про питание. А потом из проги юзать наш дривер.
Вот такая вот штука.
Может ктонить знает как можно получить состояние питания монитора? Помогите, плиз....
Здравствуйте, VictorProg, Вы писали:
AWW>>Смотрели ли вы описание прерываний для весы, в интеруптлилт?
VP>Да, конечно. Нашёл на одном из форумов линеку с примерами на асме.
Есть такая штука, кажется до сих пор поддерживается... INTERRUPTLIST, в ней описаны все, ну или почти все, параметры прерываний ... ссылки дать не могу — поищите сами...
все ясно.
короче, дело — труба, однозначно.
единственный вариант, иметь видеокарту, желательно поновее, чтоб ейные драйвера поддерживали расширенный веса сервис.
не факт, что если веса поддерживается, то мона быть уверенным, так как просто данные кэшируются при загрузке,
или при первом обращении.
я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов.
как правило новые видеокарты атишные отрабатывают нормально, но все зависит от конкретной марки
и проверки тестов путем отключения мониторов, и их перестановки.
nvidia, особенно старые, вообще этот сервис не поддерживают.
перерыл весь гугл в группах.
единственный толковый ответ от мс-гуру: архитектура видеодрайверов не предусматривает горячий опрос подключенных дочерних устройств.
т.е. драйвер не обязан реализовывать такое дело — и это похоже вряд ли изменится в будущем тоже.
писать свой видеодрайвер для видеокарты, имхо гиблое дело.
в принципе мона написать минипорт для этого дела, но нужно точно знать адреса, тайминги i2c вызовов конкретной карты.
универсального решения нет.
кстати мониторы, тоже бывают оч. разные, особенно цифровые.
так что, можешь спокойно положить это на это дело
или послать начальство, чтоб оно купило сначала все стандарты протоколов ddc на www.vesa.org
в ддк экзамплов по этому делу нет, смотри в доках фунцию VideoPortDDCMonitorHelper и релэйтед ...
Здравствуйте, Daedalus, Вы писали:
D>я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов.
А зачем так сложно... если монитор PnP то он будет перечислен... на то цепляй и играй придумано, если нет, в смысле не PnP то значит монитор уже мертв, и ему пора на помойку...
Но это к поставленому вопросу не относится... я имею ввиду вопрос о том как определить ВКЛЮЧЕН монитор или ВЫКЛЮЧЕН... Как относится знание типа подключеного монитора к его энергетическому состоянию?
Здравствуйте, Daedalus, Вы писали:
D>все ясно. D>короче, дело — труба, однозначно. D>единственный вариант, иметь видеокарту, желательно поновее, чтоб ейные драйвера поддерживали расширенный веса сервис. D>не факт, что если веса поддерживается, то мона быть уверенным, так как просто данные кэшируются при загрузке, D>или при первом обращении. D>я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов. D>как правило новые видеокарты атишные отрабатывают нормально, но все зависит от конкретной марки D>и проверки тестов путем отключения мониторов, и их перестановки. D>nvidia, особенно старые, вообще этот сервис не поддерживают. D>перерыл весь гугл в группах. D>единственный толковый ответ от мс-гуру: архитектура видеодрайверов не предусматривает горячий опрос подключенных дочерних устройств. D>т.е. драйвер не обязан реализовывать такое дело — и это похоже вряд ли изменится в будущем тоже.
D>писать свой видеодрайвер для видеокарты, имхо гиблое дело. D>в принципе мона написать минипорт для этого дела, но нужно точно знать адреса, тайминги i2c вызовов конкретной карты. D>универсального решения нет. D>кстати мониторы, тоже бывают оч. разные, особенно цифровые.
D>так что, можешь спокойно положить это на это дело
D>или послать начальство, чтоб оно купило сначала все стандарты протоколов ddc на www.vesa.org
D>в ддк экзамплов по этому делу нет, смотри в доках фунцию VideoPortDDCMonitorHelper и релэйтед ...
На мой взгляд, здесь не нужно стучаться напрямую к монитору, так как монитор в состояние standby переводит именно видокарта и в этом же состоянии адаптер не посылает сигнал развертки. В этом то весь и вопрос как определить, что видеокарта и соответственно монитор сейчас именно в этом состоянии
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>Здравствуйте, Daedalus, Вы писали:
D>>я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов. AWW>А зачем так сложно... если монитор PnP то он будет перечислен... на то цепляй и играй придумано, если нет, в смысле не PnP то значит монитор уже мертв, и ему пора на помойку...
AWW>Но это к поставленому вопросу не относится... я имею ввиду вопрос о том как определить ВКЛЮЧЕН монитор или ВЫКЛЮЧЕН... Как относится знание типа подключеного монитора к его энергетическому состоянию?
Здесь не нужно напрямую обращаться к монитору напрямую. Есть известная Vesa функция
VESA VBE/PM (Power Management) v1.0+ — GET DISPLAY POWER STATE
AX = 4F10h
BL = 02h
Return:AL = 4Fh if function supported
AH = call status
00h successful
BH = current power state
else failed
вопрос как это реализовать под win2k, при условии поддержки карточкой
Здравствуйте, Cardinale, Вы писали:
C>Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>>Здравствуйте, Daedalus, Вы писали:
D>>>я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов. AWW>>А зачем так сложно... если монитор PnP то он будет перечислен... на то цепляй и играй придумано, если нет, в смысле не PnP то значит монитор уже мертв, и ему пора на помойку...
AWW>>Но это к поставленому вопросу не относится... я имею ввиду вопрос о том как определить ВКЛЮЧЕН монитор или ВЫКЛЮЧЕН... Как относится знание типа подключеного монитора к его энергетическому состоянию?
C>Здесь не нужно напрямую обращаться к монитору напрямую. Есть известная Vesa функция
А г д е я п и с а л , ч т о :"надо обращатся на прямую к монитору" ?
C>вопрос как это реализовать под win2k, при условии поддержки карточкой
C>Здесь не нужно напрямую обращаться к монитору напрямую. Есть известная Vesa функция
C>VESA VBE/PM (Power Management) v1.0+ — GET DISPLAY POWER STATE C>AX = 4F10h C>BL = 02h C>Return:AL = 4Fh if function supported C>AH = call status C>00h successful C>BH = current power state C>else failed
C>вопрос как это реализовать под win2k, при условии поддержки карточкой
ты тормозишь — проблема когда карточка не поддерживает это дело!
если поддерживает, то нуна написать просто досовскую прогу, и редиректом получить вывод например текстовый.
без доса не обойтись, кроме того это прерывание принудительно вываливается в полноэкранный режим,
но это уже тонкости ...
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>Здравствуйте, Daedalus, Вы писали:
D>>я пробывал такое дело, пытаясь получить живую "edid" запись подключенных мониторов. AWW>А зачем так сложно... если монитор PnP то он будет перечислен... на то цепляй и играй придумано, если нет, в смысле не PnP то значит монитор уже мертв, и ему пора на помойку...
AWW>Но это к поставленому вопросу не относится... я имею ввиду вопрос о том как определить ВКЛЮЧЕН монитор или ВЫКЛЮЧЕН
...
в том-то и дело что никак!
через pnp мона определить каой монитор подключался последним, а что включен или нет — это нет
AWW>Как относится знание типа подключеного монитора к его энергетическому состоянию?
Здравствуйте, Daedalus, Вы писали:
D>в том-то и дело что никак! D>через pnp мона определить каой монитор подключался последним, а что включен или нет — это нет
В смысле последний? А другие до этого, подключенные, что не определяются? Исчезают?
AWW>>Как относится знание типа подключеного монитора к его энергетическому состоянию?
D>не понял, это к чему ?
Возможно, я не правильно вас понял, мне показалось, что вы говорите об проблеме, определения типа монитора...
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>Здравствуйте, Daedalus, Вы писали:
D>>в том-то и дело что никак! D>>через pnp мона определить каой монитор подключался последним, а что включен или нет — это нет
AWW>В смысле последний? А другие до этого, подключенные, что не определяются? Исчезают?
нет конечно, но пробема-то не в этом
AWW>>>Как относится знание типа подключеного монитора к его энергетическому состоянию?
D>>не понял, это к чему ? AWW>Возможно, я не правильно вас понял, мне показалось, что вы говорите об проблеме, определения типа монитора...
проблема все-таки в определении подключен ли в текущий момент монитор вообще, что имхо невозможно определить,
и если подключен то работает ли (в каком состоянии)
по второй проблеме я тоже хотел бы узнать, мона ли
по определению типа монитора, тоже интересно!
мне пока не удалось, за отсутствием достаточного количества мониторов для тестирования
думаю что фишка в дополнительных блоках edid, а вы ?