HomeBlogMagic

Windows Driver Zugriff mit User Rechten

Wer einen Default-Treiber mit dem WDK entwickelt, kann oftmals nur mit Adminrechten auf den Treiber zugreifen.
IO-Controls oder Read/Write-Zugriffe werden als User somit fehlschlagen.

Zugriff zur Laufzeit erlauben

Es gibt mehrere Methoden um Zugriffe als User zu ermöglichen. Meine Bevorzugte Methode ist das setzen von Security Settings im Treiber bei der initialisierung eines neuen Devices.

Dies erfolgt durch die Methode WdfDeviceInitAssignSDDLString.

Ein Beispiel um dir Rechte für alle Nutzer zu gewähren:

WdfDeviceInitAssignSDDLString(DeviceInit, &SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX);

Troubleshooting

WdfDeviceCreate returned 0xc0000079 (STATUS_INVALID_SECURITY_DESCR)

Es ist vorher vermutlich no kein Name für das Device gesetzt werden.
Deshalb muss bevor WdfDeviceInitAssignSDDLString aufgerufen wird entweder WdfDeviceInitAssignName, mit einem eigens definierten Namen, oder WdfDeviceInitSetCharacteristics mit einem generierten Namen aufgerufen werden.

Da ich selten festvergebene namen benötige, ist folgender Code von mir beforzug:

WdfDeviceInitSetCharacteristics(DeviceInit, FILE_AUTOGENERATED_DEVICE_NAME, TRUE);
Permalink: https://adirmeier.de/Blog/ID_219
Tags: Blog, Driver, KMDF, WDF, WDK, Windowsvon am 2018-08-08