WdfDeviceCreateDeviceInterface 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

WdfDeviceCreateDeviceInterface 메서드는 지정된 디바이스에 대한 디바이스 인터페이스를 만듭니다.

구문

NTSTATUS WdfDeviceCreateDeviceInterface(
  [in]           WDFDEVICE        Device,
  [in]           const GUID       *InterfaceClassGUID,
  [in, optional] PCUNICODE_STRING ReferenceString
);

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

[in] InterfaceClassGUID

디바이스 인터페이스 클래스를 식별하는 GUID에 대한 포인터입니다.

[in, optional] ReferenceString

디바이스 인터페이스에 대한 참조 문자열을 설명하는 UNICODE_STRING 구조체에 대한 포인터입니다. 문자열에는 경로 구분 기호 문자("/" 또는 "\")가 포함되어서는 안 됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

WdfDeviceCreateDeviceInterface 는 작업이 성공하면 STATUS_SUCCESS 반환합니다.

WdfDeviceCreateDeviceInterface에서 반환할 수 있는 다른 반환 값 목록은 프레임워크 개체 만들기 오류를 참조하세요.

메서드는 다른 NTSTATUS 값을 반환할 수 있습니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

드라이버는 EVT_WDF_DRIVER_DEVICE_ADD 또는 디바이스가 시작된 후 WdfDeviceCreateDeviceInterface를 호출할 수 있습니다.

드라이버가 EVT_WDF_DRIVER_DEVICE_ADD 콜백 함수에서 이 함수를 호출하면 디바이스가 시작되고 디바이스가 중지될 때 비활성화될 때 인터페이스가 자동으로 활성화됩니다. 자동 사용을 방지하기 위해 드라이버는 IsInterfaceEnabled 매개 변수가 FALSE로 설정된 WdfDeviceSetDeviceInterfaceStateEx를 호출할 수 있습니다.

디바이스가 이미 시작된 후 드라이버가 이 함수를 호출하는 경우 인터페이스는 비활성화된 상태로 유지됩니다. 드라이버는 WdfDeviceSetDeviceInterfaceState를 적절하게 호출할 수 있습니다.

드라이버는 ReferenceString 매개 변수를 사용하여 단일 인터페이스의 여러 인스턴스를 구분할 수 있습니다. 즉, 드라이버가 동일한 디바이스 인터페이스 클래스에 대해 WdfDeviceCreateDeviceInterface 를 두 번 호출하는 경우 드라이버는 매번 다른 ReferenceString 매개 변수를 지정할 수 있습니다. 인터페이스의 instance 열리면 I/O 관리자가 instance 참조 문자열을 드라이버에 전달합니다. 참조 문자열은 인터페이스 instance 이름의 경로 구성 요소에 추가됩니다. 그런 다음 드라이버는 참조 문자열을 사용하여 열려 있는 디바이스 인터페이스 클래스의 instance 확인할 수 있습니다.

디바이스 인터페이스 및 WdfDeviceCreateDeviceInterface 메서드에 대한 자세한 내용은 디바이스 인터페이스 사용을 참조하세요.

예제

다음 예제에서는 디바이스에 대한 COM 포트 인터페이스 클래스를 등록합니다.

NTSTATUS  status;

status = WdfDeviceCreateDeviceInterface(
                                        Device,
                                        (LPGUID) &GUID_DEVINTERFACE_COMPORT,
                                        NULL
                                        );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

UNICODE_STRING

WdfDeviceSetDeviceInterfaceState