WdfDeviceInitAssignSDDLString 함수(wdfdevice.h)

[KMDF에만 적용]

WdfDeviceInitAssignSDDLString 메서드는 디바이스에 대한 보안 설정을 할당합니다.

구문

NTSTATUS WdfDeviceInitAssignSDDLString(
  [in]           PWDFDEVICE_INIT  DeviceInit,
  [in, optional] PCUNICODE_STRING SDDLString
);

매개 변수

[in] DeviceInit

WDFDEVICE_INIT 구조체에 대한 포인터입니다.

[in, optional] SDDLString

유니코드 문자열을 설명하는 UNICODE_STRING 구조체에 대한 포인터입니다. 이 문자열은 보안 설명자의 SDDL 표현입니다.

반환 값

작업이 성공하면 WdfDeviceInitAssignSDDLString은 STATUS_SUCCESS 반환합니다. 추가 반환 값은 다음과 같습니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
시스템에서 디바이스 이름을 저장할 공간을 할당할 수 없습니다.

설명

드라이버는 SDDL(보안 설명자 정의 언어) 하위 집합을 사용하여 보안 설정을 지정할 수 있습니다. Wdmsec.h 파일은 사용할 수 있는 SDDL_DEVOBJ_XXX 형식의 상수 집합을 정의합니다. 보안 설명자 및 SDDL에 대한 자세한 내용은 디바이스 개체 보안을 참조하세요.

시스템 관리자는 레지스트리에 보안 설명자를 추가하여 지정된 보안 설명자를 재정의할 수 있습니다. 자세한 내용은 IoCreateDeviceSecure를 참조하세요.

WdfDeviceInitAssignSDDLString을 호출하기 전에 드라이버는 WdfDeviceInitAssignName을 호출하거나 WdfDeviceInitSetCharacteristics를 호출하고 이름 없는 디바이스 개체에 대한 보안 설명자를 제공할 수 없으므로 FILE_AUTOGENERATED_DEVICE_NAME 지정해야 합니다.

드라이버가 WdfDeviceInitAssignSDDLString을 호출하는 경우 WdfDeviceCreate를 호출하기 전에 호출해야 합니다. WdfDeviceCreate를 호출하는 방법에 대한 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요.

보안 문제에 대한 자세한 내용은 Framework-Based 드라이버의 보안 문제를 참조하세요.

UMDF 드라이버를 작성하는 경우 스택에 적절한 보안 설명자를 제공하도록 드라이버의 INF 파일을 수정해야 합니다. 자세한 내용은 디바이스 개체 보안을 참조하세요. 레지스트리 사용에 대한 자세한 내용은 설치 중에 디바이스 개체 레지스트리 속성 설정을 참조하세요.

예제

다음 코드 예제에서는 디바이스에 대한 보안 설정을 할당합니다.

NTSTATUS status;

status = WdfDeviceInitAssignSDDLString(
                                       pDeviceInit,
                                       &SDDL_DEVOBJ_SYS_ALL_ADM_ALL
                                       );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)