다음을 통해 공유


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 반환할 수 다른 반환 값 목록은 Framework 개체 만들기 오류참조하세요.

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

드라이버에서 잘못된 개체 핸들을 제공하면 버그 검사가 수행됩니다.

발언

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

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

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

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

디바이스 인터페이스 및 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