디바이스 액세스 제어
UMDF 드라이버 호스트 프로세스는 로컬 서비스 계정의 컨텍스트에서 실행됩니다. 드라이버는 로컬 서비스 계정에 대한 일반화된 액세스를 허용하지 않는 다른 디바이스 또는 구성 요소에 액세스해야 할 수 있습니다.
Windows 8 운영 체제에는 UMDF 드라이버를 식별하는 SID(보안 식별자)가 포함됩니다. 디바이스 보안 요구 사항에 이 SID를 포함하면 디바이스 또는 구성 요소는 로컬 서비스 계정의 다른 요청으로부터의 액세스를 방지하면서 UMDF 드라이버에 대한 액세스를 허용할 수 있습니다.
UMDF 드라이버용 SID는 SDDL_USER_MODE_DRIVERS 정의는 sddl.h에 있습니다. 이 SID의 전체 표현은 다음과 같습니다.
S-1-5-84-0-0-0-0-0
이 SID의 약어는 UD입니다. 이 약어는 Windows 8 시작해서 사용할 수 있습니다.
UMDF 드라이버 외부의 드라이버는 디바이스 개체를 만들기 전에 해당 INF 파일 또는 드라이버에서 SID를 지정할 수 있습니다.
INF 파일에서 디바이스 보안 지정
INF 파일에서 약어 형식 또는 완전히 지정된 SID 형식을 사용할 수 있습니다.
약식 양식은 Windows 8 시작해서 사용할 수 있습니다.
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"
Windows 8 이전 운영 체제에서는 완전히 지정된 형식을 사용해야 합니다.
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"
KMDF 드라이버에서 디바이스 보안 지정
드라이버에서 보안 요구 사항을 지정하려면 약식 형식을 사용해야 하며, 이 형식은 Windows 8 시작해서만 사용할 수 있습니다. 예를 들어 KMDF 드라이버는 다음을 사용하여 UMDF 드라이버에서 해당 디바이스에 액세스할 수 있습니다.
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);