IoCreateDevice вылетает под Вистой

Discussion in 'WASM.NT.KERNEL' started by Weberd, Jun 19, 2007.

  1. Weberd

    Weberd New Member

    Blog Posts:
    0
    Пример к статье "Перехват функций Windows NT". Под Вистой IoCreateDevice выдает
    NT_STATUS_OBJECT_NAME_COLLISION
    Code (Text):
    1. PCWSTR dDeviceName       = L"\\Device\\NoTerminate";
    2. PCWSTR dSymbolicLinkName = L"\\DosDevices\\NoTerminate";
    3.  
    4. DPRINT("Driver loaded");
    5.  
    6. RtlInitUnicodeString(&DeviceName,       dDeviceName);
    7. RtlInitUnicodeString(&SymbolicLinkName, dSymbolicLinkName);
    8.    
    9.     st = IoCreateDevice(DriverObject,  // указатель на DriverObject
    10.                         0,           // размер дополнительной памяти связанной с устройством
    11.                         &DeviceName,     // имя создаваемого устройства
    12.                                 FILE_DEVICE_NULL,// тип создаваемого устройства  
    13.                 0,               // характеристики устройства
    14.                                 FALSE,           // "эксклюзивное" устройство
    15.                 &deviceObject);  // указатель на обьект устройства
     
  2. Four-F

    Four-F New Member

    Blog Posts:
    0
    Code (Text):
    1. //
    2. // MessageId: STATUS_OBJECT_NAME_COLLISION
    3. //
    4. // MessageText:
    5. //
    6. //  Object Name already exists.
    7. //
    8. #define STATUS_OBJECT_NAME_COLLISION     ((NTSTATUS)0xC0000035L)
    девайс с таким именем уже существует.
     
  3. Weberd

    Weberd New Member

    Blog Posts:
    0
    по названию, то я понял что сообщение означает, но не поверил, что в Висте уже есть устройство NoTerminate. хммм... в следующий раз буду подключать голову :)
     
  4. Four-F

    Four-F New Member

    Blog Posts:
    0
    Возможно штатно его и нет, а появилось оно в результате твоих же экспериментов. Поищи WinObjEx'ом сразу после ребута.