Использование ZwOpenDirectoryObject/ZwQueryDirectoryObject

Тема в разделе "WASM.NT.KERNEL", создана пользователем Begemot, 3 дек 2006.

  1. Begemot

    Begemot New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    79
    Подскажите как пользоваться вышеназванными ф-циями, плиз.
    Задача стоит в преобразовании буквы диска к системному виду \DEVICE\HARDDISKVOLUMEX.
    Пробую так:

    Код (Text):
    1. OBJECT_ATTRIBUTES obj;
    2. HANDLE hFile;
    3. POBJDIR_INFORMATION ssinfo = NULL;
    4. ULONG a, b=0;
    5. NTSTATUS ns;
    6. UNICODE_STRING Disk;
    7.  
    8. Disk.Length=4;
    9. Disk.MaximumLength=6;
    10. Disk.Buffer=L"D:";
    11. InitializeObjectAttributes (&obj, &Disk, 0, 0, 00);
    12. ns=ZwOpenDirectoryObject(&hFile,0x0001,&obj);
    13. if (!NT_SUCCESS(ns)) DPRINT("!!! OPEN error !!!");
    14. if (ZwQueryDirectoryObject(hFile,ssinfo,0x800,TRUE,FALSE,&b,&a)==0) {
    15.     DPRINT("Retrieved NAME: %ws", ssinfo->ObjectTypeName.Buffer);
    16. } else DPRINT("!!! NtQueryDirectoryObject error !!!");
    И получаю, исключительно, ошибки.
    Что не так?
     
  2. crazy_blu

    crazy_blu New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2006
    Сообщения:
    4
    http://www.rsdn.ru/Forum/?mid=595633
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Поиск по форуму => мой пост https://wasm.ru/forum/viewtopic.php?pid=224984#p224984
    Там код для разрешения пути с символьными ссылками в полный путь.
    Передаешь ему \??\C:\ и получаешь \Device\HarddiskVolumeX