none
Вопрос по написаннию драйвера wdf RRS feed

  • Вопрос

  • Здравствуйте,

    столкнулся с такой проблемой. Надо два абсолютно одинаковых ус-ва инициализировать одним драйвером. Зачем, не спрашивайте. Исправляю ошибку железячников.
    Раньше, когда было одно ус-во, всё делал как в примере RamDisk
    #define NT_DEVICE_NAME L"\\Device\\Ramdisk"
    #define DOS_DEVICE_NAME L"\\DosDevices\\"


    NTSTATUS RamDiskEvtDeviceAdd(...){
    ...
    DECLARE_CONST_UNICODE_STRING(ntDeviceName, NT_DEVICE_NAME);
    status = WdfDeviceInitAssignName(DeviceInit, &ntDeviceName);
    if (!NT_SUCCESS(status)) {
    return status;
    }
    ...
    }

    на non-pnp драйверах до меня реализовывалась подобная вещь, но на wdf её не перенести.
    я представляю это так — к имени ус-ва будет добавлен индекс: Ramdisk0, Ramdisk1 и т.д.
    индеск — глобальную переменную нет проблем создать, но
    т.к. это wdf, то нельзя в addDevice создать
    цикл с увеличением этого индекса, ос должна сама вызывать addDevice с разными именами.
    Следовательно надо как-то через DriverEntry подсказать ос что устройств несколько.
    Но как это реализовать не понимаю.
    Подскажите пожалуйста.
    Спасибо.

    • Перемещено Abolmasov Dmitry 8 мая 2012 г. 12:01 (От:Где задать вопрос?)

Ответы

  • Вроде бы разобрался. Как я понял при установке wdf драйвера система ищет ус-ва которые этот драйвер поддерживает. Если она находит ХОТЯБЫ одно то вызывает DriverEntry и потом AddDevice для КАЖДОГО ус-ва, поддерживаемого драйвером. Моя задача состоит в том чтобы при каждом вызове AddDevice менялось присваиваемое устройству имя. После праздников проверю свою теорию
    • Помечено в качестве ответа Abolmasov Dmitry 10 мая 2012 г. 8:41

Все ответы

  • Вроде бы разобрался. Как я понял при установке wdf драйвера система ищет ус-ва которые этот драйвер поддерживает. Если она находит ХОТЯБЫ одно то вызывает DriverEntry и потом AddDevice для КАЖДОГО ус-ва, поддерживаемого драйвером. Моя задача состоит в том чтобы при каждом вызове AddDevice менялось присваиваемое устройству имя. После праздников проверю свою теорию
    • Помечено в качестве ответа Abolmasov Dmitry 10 мая 2012 г. 8:41
  • Перенес ваш топик в подходящий раздел Настольные ПК

    Не забудьте сообщить о результатах. Спасибо.


    Для связи [mail]

  • да, всё оказалось именно так.