IWDFDevice3::CreateInterrupt 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]

CreateInterrupt 메서드는 프레임워크 인터럽트 개체를 만듭니다.

구문

HRESULT CreateInterrupt(
  [in]  PWUDF_INTERRUPT_CONFIG Configuration,
  [out] IWDFInterrupt          **ppInterrupt
);

매개 변수

[in] Configuration

WUDF_INTERRUPT_CONFIG_INIT 매크로를 호출하여 초기화된 WUDF_INTERRUPT_CONFIG 구조체에 대한 포인터입니다.

[out] ppInterrupt

새 인터럽트 개체에 대한 IWDFInterrupt 인터페이스에 대한 포인터를 수신하는 버퍼에 대한 포인터입니다.

반환 값

메서드는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 이 메서드는 Winerror.h에 정의된 오류 코드 중 하나를 반환합니다.

설명

드라이버는 디바이스에 필요한 각 인터럽트 벡터에 대해 CreateInterrupt 를 한 번 호출해야 합니다. 디바이스가 MSI(메시지 신호 인터럽트)를 지원하는 경우 드라이버는 디바이스가 지원할 수 있는 각 메시지에 대해 인터럽트 개체를 만들어야 합니다.

드라이버는 일반적으로 OnDeviceAdd 콜백 함수에서 CreateInterrupt 메서드를 호출하지만 IPnpCallbackHardware2::OnPrepareHardware에서 이 메서드를 호출할 수도 있습니다.

플러그 앤 플레이(PnP) 관리자가 디바이스에 시스템 리소스를 할당한 후 프레임워크는 드라이버가 만든 인터럽트 개체에 디바이스의 할당된 인터럽트 리소스에 대한 정보를 저장합니다. (플러그 앤 플레이 지원하지 않는 드라이버는 인터럽트 개체를 사용할 수 없습니다.)

시스템에서 디바이스가 지원할 수 있는 모든 인터럽트 리소스를 할당하지 않을 수 있습니다. 예를 들어 드라이버는 8개의 MSI 메시지를 지원할 수 있는 디바이스에 대해 8개의 인터럽트 개체를 만듭니다. 그러나 시스템은 디바이스에 하나의 메시지만 할당할 수 있습니다. 이 경우 인터럽트 개체 중 7개가 사용되지 않습니다.

일반적으로 드라이버는 인터럽트 개체의 컨텍스트 공간에 디바이스 인터럽트 레지스터의 복사된 콘텐츠와 같은 인터럽트 관련 정보를 저장해야 합니다. 드라이버는 IWDFObject::AssignContext 를 호출하여 컨텍스트를 등록하고 개체가 유효하지 않은 경우 알림을 요청합니다.

UMDF는 Windows 8 시작하는 수준 트리거 인터럽트도 지원합니다. Windows 8 이전 운영 체제에서 실행되는 드라이버가 OnDeviceAdd에서 수준 트리거 인터럽트를 만드는 경우 운영 체제에 리소스가 아직 할당되지 않았기 때문에 CreateInterrupt가 성공합니다. 그러나 프레임워크가 나중에 인터럽트 연결을 시도하면 디바이스가 시작되지 않습니다.

UMDF 드라이버에서 인터럽트 처리에 대한 자세한 내용은 하드웨어 액세스 및 인터럽트 처리를 참조하세요.

예제

HRESULT  hr;
IWDFInterrupt* pInterrupt;
WUDF_INTERRUPT_CONFIG  interruptConfig;

WUDF_INTERRUPT_CONFIG_INIT(&interruptConfig,
                           MyInterruptIsr,
                           MyInterruptWorkItem);

hr = pDevice->Create(&interruptConfig, 
                     &pInterrupt);

요구 사항

요구 사항
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 데스크톱
최소 UMDF 버전 1.11
머리글 wudfddi.h
DLL WUDFx.dll

추가 정보

IWDFDevice3

WUDF_INTERRUPT_CONFIG

WUDF_INTERRUPT_CONFIG_INIT