none
OpenService wirft ERROR_INVALID_HANDLE obwohl der Name 1:1 aus EnumServicesStatus kommt RRS feed

  • Frage

  • Hallo, es geht um die Win32API.

    Ich hole mir mittels EnumServicesStatus alle Servicenamen.

    Mit diesen Namen generiere ich dann je einen SC_HANDLE:
    serviceHandle = OpenService(serviceManager, serviceName, SC_MANAGER_ALL_ACCESS)

    Wieso aber bekomme ich bei einigen Diensten anschließend ein ERROR_INVALID_HANDLE?
    Mir erschließt sich kein Grund, da die Namen 1:1 aus dem Enum übernommen werden und daher der Bezeichner stimmen sollte.

    Vielleicht kann mir jemand erklären warum das passiert? ;-)

    Montag, 3. März 2014 20:47

Antworten

  • Wie immer, sobald man postet, findet man den Fehler.

    Es lag an der ACL, wenn ich mittels SC_MANAGER_ALL_ACCESS zugreife entstehen die Fehler. Mittels GENERIC_READ was in meinem Fall ausreicht, können alle Services abgerufen werden.

    • Als Antwort markiert Syfy Montag, 3. März 2014 20:57
    Montag, 3. März 2014 20:53