Problem z otwarciem uchwytu urządzenia

Animalpak

Użytkownik
Dołączył
Grudzień 15, 2012
Posty
1
Witam!

Mam wielki problem z otwarciem uchwytu urządzenia.

Na samym początku Tworzę sterownik trybu jądra, któy rejesruje urządzenie za pomocą takiego kodu:

Kod:
VOID OnUnload(IN PDRIVER_OBJECT driverObject)
{
        DbgPrint("Wywolano funkcje OnUnload\n");
}
 
 
PDEVICE_OBJECT g_Device;                
const WCHAR deviceNameBuffer[] = L"\\Device\\Kropki112";
 
NTSTATUS DriverEntry(IN PDRIVER_OBJECT driverObject, IN PUNICODE_STRING registryPath)
{
        NTSTATUS ntStatus;
        UNICODE_STRING deviceNameUnicodeString;
 
        RtlInitUnicodeString(&deviceNameUnicodeString,deviceNameBuffer);
 
        ntStatus = IoCreateDevice(driverObject,0,&deviceNameUnicodeString,0x00001234,0,TRUE,&g_Device);
 
 
        if(NT_SUCCESS(ntStatus))
        {
                DbgPrint("Wszytsko oK");
        }
 
        driverObject->DriverUnload;
 
        return ntStatus;
 
}


Ładuje sterownik za pomocą menadżera SCM rejestruje Go i uruchamiam.
WinObj pokazuje zarejestrowane urządzenie, DebgView pokazuje komunikat "Wszytsko ok", jednak gdy próbuje utworzyć uchwyt urządzenia za pomocą następującego kodu:


Kod:
int _tmain(int argc, _TCHAR* argv[])
{
        HANDLE hDevice = CreateFile(L"\\\\Device\\Kropki112",GENERIC_READ,
                0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
 
 
        if(hDevice == INVALID_HANDLE_VALUE)
        {
                printf("Error");
        }
 
        _getch();
 
        return 0;
}


hDevice zwraca -1, a GetLastError 53 - ERROR_BAD_NETPATH
gdy próbuje jakieś inne urządzenie otworzyć, komunikat ten sam - ktoś ma jakiś pomysł co robie źle?

System Windows7 x64 z SP1, wszytskie poprawki instalowane na bieżąco
 
Do góry Bottom