Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Treiber laden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.09.2005, 11:46 Uhr
ProgNoob



Hallo zusammen

BS: Win xp

und zwar habe ich jetzt ein projekt angefangen bei dem ich alle hid-devices suchen und alle
Descritoren ect. auslesen will.
Nun habe ich das prob dass anscheinend windows die Maus und Tastatur mit dem Standardtreiber sperrt. Darauf komm ich da ich von den beiden mit CreateFile ein ungültiges handle zurückbekomme. nun wollte ich dies umgehen indem ich den Standardtreiber rausschmeisse und meinen eigenen lade.
weiß jemand wie man in c/c++ einen *.sys lädt oder ob es geht.

merci
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.09.2005, 11:48 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Wie kommst du drauf die Maus oder Tastatur über CreateFile abzufragen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.09.2005, 11:55 Uhr
ProgNoob



ich suche alle angeschlossenen geräte
und ich bekomm den path nur dass ich nicht immer ein gültiges datei handle zurückbekomme
nach ein paar proben bin ich überzeugt dass es das keyboard und die maus ist auf die ich kein pointer bekomme auf hubs ect. bekomm ich ein gültiges

hier ein bisschen code


C++:
   HIDD_ATTRIBUTES                        Attributes;
    int                                    MemberIndex=0,            count=0;
    long                                Result,Intdet,Attr;
    SP_DEVICE_INTERFACE_DATA            devInfoData;
    bool                                LastDevice = FALSE;

    HidD_GetHidGuid(&HidGuid);

    hDevInfo = SetupDiGetClassDevs
        (&HidGuid,
        NULL,
        NULL,
        DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
    
    if(hDevInfo == INVALID_HANDLE_VALUE) AfxMessageBox("SetupDiGetClassDevs");

    devInfoData.cbSize = sizeof(devInfoData);
    
    MemberIndex = 0;
    LastDevice = FALSE;
        
    do
    {
        Result=0;
        Result = SetupDiEnumDeviceInterfaces
            (hDevInfo,
             0,
             &HidGuid,
             MemberIndex,
             &devInfoData);
    
        if(Result != 0)
        {
            Intdet = SetupDiGetDeviceInterfaceDetail
                (hDevInfo,
                &devInfoData,
                NULL,
                0,
                &Length,
                NULL);

            detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(Length);
            detailData -> cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);

            Intdet = SetupDiGetDeviceInterfaceDetail
                (hDevInfo,
                &devInfoData,
                detailData,
                Length,
                &Required,
                NULL);
            if(Intdet==0)AfxMessageBox("SetupDiGetDeviceInterfaceDetail ");
            DeviceHandle =0;

            DeviceHandle = CreateFile
                (detailData->DevicePath,
                GENERIC_READ|GENERIC_WRITE,
                FILE_SHARE_READ|FILE_SHARE_WRITE,
                (LPSECURITY_ATTRIBUTES)NULL,
                OPEN_EXISTING,
                0,
                NULL);
        //if(DeviceHandle==INVALID_HANDLE_VALUE) AfxMessageBox("CreateFile");
            
            Attributes.Size = sizeof(Attributes);

            Attr = HidD_GetAttributes
                    (DeviceHandle,
                    &Attributes);
            
            //if(Attr==0)AfxMessageBox("GetAtt");
            
            if(DeviceHandle != INVALID_HANDLE_VALUE)
            {
                Alle_ConDev[count].Produkt_ID        = Attributes.ProductID;
                Alle_ConDev[count].Vendor_ID        = Attributes.VendorID;
                Alle_ConDev[count].Version            = Attributes.VersionNumber;
                Alle_ConDev[count].Device_Handle    = DeviceHandle;
                count++;
            }
            GetDeviceCapabilities();
            free(detailData);
            CloseHandle(DeviceHandle);
        }
        else LastDevice = true;
        
        MemberIndex = MemberIndex + 1;

    }while(LastDevice == false);


Dieser Post wurde am 21.09.2005 um 11:58 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.09.2005, 11:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


würde mich nicht wundern wenn es einfach nur daran liegt das du mit "Write" auf die devices zugreifen willst. Seit wann kann man auf ne Maus schreiben? :P Probier einfachmal nur "Read". Evtl hilft das
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.09.2005, 12:00 Uhr
ProgNoob



ok muss ich mal schnell ausprobieren
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.09.2005, 12:04 Uhr
ProgNoob



ne du bringt auch nichts
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.09.2005, 12:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


denk mal das windows direktes öffnen bestimmter devices einfach nicht zulässt. ist ja irgendwo auch sinnvoll. Kannste die Infos nicht direkt aus der Registry lesen? steht doch schliesslich auch alles drin
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.09.2005, 12:26 Uhr
ProgNoob



ne aber es muss doch nen weg geben die sperre zu umgehen
bei HIDView(Programm) gehts ja auch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: