Вопросы про Kernel Mode

Тема в разделе "WASM.WIN32", создана пользователем cemen, 14 фев 2006.

  1. cemen

    cemen New Member

    Публикаций:
    0
    Регистрация:
    9 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Здравствуйте.

    Вот взялся программировать драйвер,и на некотором этапе возникла пара вопросов.

    Во-первых,надо бы выводить в лог на диск системное время.Но я максимум нашёл функцию KeQuerySystemTime(),которая выдаёт..немного не то,что надо.

    Преобразовывать из наносекундных отсчётов неохота.

    Была идея черпать прямо из CMOS-чипа,из регистров тех часов,что работают от батарейки,но тоже неохота.Долгие обращения.

    Что делать?Есть нормальные способы получить строку(в конечном итоге) с текущим временем?



    А во-вторых,ещё есть такая затея,что нумерация устройств типа \\Device\\SerialХХХ не та,что у ком-портов.

    У меня на материнке 1 ком(COM1),потом на USB кабеле(COM3),и на USBtoCOM(COM4).

    Так вот,COM->\\Device\\Serial0

    COM4->\\Device\\Serial2

    Я так понял(да и логично),что нумерация по порядку определения в системе.

    Как однозначно определить номер \\Device\\Serial по номеру ком-порта?

    Жду вашей помощи,заранее спасибо.
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Ну а что надо то? они тебе дату и время и выдает. Перевести в локальное время можно через ExSystemTimeToLocalTime





    Для каждого ком порта создается симболическая ссылка \??\COMx



    Можно получить девайс на который она ссылается с помощью ZwOpenSymbolicLinkObject/ZwQuerySymbolicLinkObject а можно и ничего не получать, а работать с девайсом прямо через ссылку.
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    для форматирования времени в читабельную строку - RtlTimeToTimeFields
     
  4. greeen

    greeen New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2006
    Сообщения:
    8
    Адрес:
    Russia


    Если руки неподнимаются сделать такую элементарную весчь,

    то представляю с каким обломом ты пишешь свой драйвер. ;)