Передача расширенных параметров ZwCreateFile устройству.

Тема в разделе "WASM.NT.KERNEL", создана пользователем Quark, 1 май 2008.

  1. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    2 последних параметра этой функции:

    EaBuffer
    For device and intermediate drivers, this parameter must be a NULL pointer.
    EaLength
    For device and intermediate drivers, this parameter must be zero.

    Могу ли я использовать их для передачи параметров обработчику DispatchCreate? и вообще можно ли как-то передавать данные в этот обработчик?
     
  2. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    Quark
    Через вызов DeviceIoControl.
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Osen в IRP_MJ_CREATE? оригинально..
     
  4. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    Можно заюзать и DispatchControl, но лучше через DispatchCreate. По идее эти параметры присутствуют в ZwCreateFile и используются, например, сетевыми TDI драйверами... Но как только пытаюсь указать при создании эти 2 параметра сразу вылазит ошибка STATUS_EA_LIST_INCONSISTENT, при этом обработчик в драйвере даже не вызывается.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну дык это не просто указатель рандомный, а на определенную структуру, как я помню.
     
  6. Quark

    Quark New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    211
    Great, А разве тип этой структуры устанавливает не сам драйвер?
     
  7. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    Great
    Ну да, вроде ничего в этом плохого. В чем оригинальность?

    Quark
    Все теперь понятно.
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Quark
    NtCreateFile -> IoCreateFile ->
    Код (Text):
    1. 02391 NTSTATUS
    2. 02392 IoCheckEaBufferValidity(
    3. 02393     IN PFILE_FULL_EA_INFORMATION EaBuffer,
    4. 02394     IN ULONG EaLength,
    5. 02395     OUT PULONG ErrorOffset
    6. 02396     )
    Да и в описании к (Io/Nt)CreateFile явно написано:
    Так что не стоит пихать туда что попалоOsen
    Расскажешь как-нибудь на досуге как через DeviceIoControl передават данные в IRP_MJ_CREATE хендлер
     
  9. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    Great
    Да, я не прав.