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);