Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 einschließen dieser SID in ihre Gerätesicherheitsanforderungen können Geräte oder Komponenten den Zugriff auf UMDF-Treiber ermöglichen und gleichzeitig den Zugriff von anderen Anforderungen aus dem lokalen Dienstkonto 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 ist UD. Diese Abkürzung ist ab Windows 8 verfügbar.
Ein externer Treiber des UMDF-Treibers kann die SID entweder in der 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 die vollständig angegebene Form 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)"
Bestimmen 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. Beispielsweise kann ein KMDF-Treiber den Zugriff auf sein Gerät über UMDF-Treiber mithilfe der folgenden Optionen aktivieren:
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);