Steuern des Gerätezugriffs
Der UMDF-Treiberhostprozess wird im Kontext des lokalen Dienstkontos ausgeführt. Ihr Treiber muss möglicherweise auf andere Geräte oder Komponenten zugreifen, die keinen generalisierten Zugriff auf das lokale Dienstkonto zulassen.
Ab Windows 8 enthält das Betriebssystem eine Sicherheits-ID (SID), die UMDF-Treiber identifiziert. Durch Die Aufnahme dieser SID in ihre Gerätesicherheitsanforderungen können Geräte oder Komponenten den Zugriff auf UMDF-Treiber zulassen und gleichzeitig den Zugriff von anderen Anforderungen des lokalen Dienstkontos verhindern.
Die SID für UMDF-Treiber ist SDDL_USER_MODE_DRIVERS, und die Definition befindet sich in sddl.h. Die vollständige Darstellung dieser SID lautet:
S-1-5-84-0-0-0-0-0
Die Abkürzung für diese SID lautet UD. Diese Abkürzung ist ab Windows 8 verfügbar.
Ein externer Treiber ihres UMDF-Treibers kann die SID entweder in seiner INF-Datei oder im Treiber angeben, bevor das Geräteobjekt erstellt wird.
Angeben der Gerätesicherheit in einer INF-Datei
In der INF-Datei können Sie entweder das abgekürzte Formular oder das vollständig angegebene Formular der SID verwenden.
Das abgekürzte Formular ist ab Windows 8 verfügbar:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"
Unter Betriebssystemen vor Windows 8 müssen Sie das vollständig angegebene Formular verwenden:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"
Angeben der Gerätesicherheit in einem KMDF-Treiber
Um Sicherheitsanforderungen im Treiber anzugeben, müssen Sie das abgekürzte Formular verwenden, das nur ab Windows 8 verfügbar ist. Ein KMDF-Treiber könnte beispielsweise den Zugriff auf sein Gerät über UMDF-Treiber mithilfe von Folgenden ermöglichen:
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);