다음을 통해 공유


IWDFDevice::P ostEvent 메서드(wudfddi.h)

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

PostEvent 메서드는 드라이버에서 지정된 이벤트를 기다리는 애플리케이션에 비동기적으로 알 수 있습니다.

구문

HRESULT PostEvent(
  [in] REFGUID        EventGuid,
  [in] WDF_EVENT_TYPE EventType,
  [in] BYTE           *pbData,
  [in] DWORD          cbDataSize
);

매개 변수

[in] EventGuid

이벤트에 대한 GUID입니다. GUID는 애플리케이션 및 드라이버에 의해 결정되며 프레임워크에 불투명합니다.

[in] EventType

이벤트 유형을 식별하는 WDF_EVENT_TYPE 형식의 값입니다. UMDF의 현재 버전에서 드라이버는 EventTypeWdfEventBroadcast (1)로 설정해야 합니다. WdfEventBroadcast 는 이벤트가 브로드캐스트됨을 나타냅니다. 애플리케이션은 WdfEventBroadcast 형식 이벤트를 구독할 수 있습니다. 브로드캐스트 이벤트를 수신하려면 애플리케이션이 Microsoft Win32 RegisterDeviceNotification 함수를 통해 알림을 등록해야 합니다. WdfEventBroadcast 형식 이벤트는 애플리케이션에 DBT_CUSTOMEVENT 형식 이벤트로 노출됩니다.

[in] pbData

이벤트와 연결된 데이터를 포함하는 버퍼에 대한 포인터입니다. NULL 은 유효한 값입니다.

[in] cbDataSize

pbData가 가리키는 데이터의 크기(바이트)입니다. pbDataNULL로 설정된 경우 0은 유효한 크기 값입니다.

이벤트 데이터의 최대 크기는 MAXUSHORT(64KB)보다 약간 작습니다. 정확한 상한은 (0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)입니다.

반환 값

PostEvent 는 다음 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
이벤트 데이터가 운영 체제로 성공적으로 전송되었습니다.
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY)
cbDataSize 매개 변수가 지정하는 데이터 크기가 허용되는 최대 크기보다 큽니다.
E_INVALIDARG
EventType 매개 변수가 WdfEventBroadcast(1)로 설정되지 않았습니다.
E_OUTOFMEMORY

PostEvent 가 완료하는 데 필요한 메모리를 할당할 수 없습니다.

 

PostEvent 는 다른 HRESULT 값을 반환할 수도 있습니다.

설명

드라이버가 IWDFDevice::P ostEvent 를 호출하여 요청 애플리케이션에 이벤트에 대해 알리면 UMDF는 이벤트를 운영 체제로 보냅니다. 운영 체제는 비동기 작업에서 요청 애플리케이션에 이벤트를 보냅니다. 운영 체제에서 처음에 오류를 반환하지 않으면 드라이버는 오류(S_OK)를 받지 않습니다. 그러나 나중에 운영 체제가 이벤트 제공을 시도하는 동안 오류가 발생하는 경우(메모리 부족 상태일 수 있음) 운영 체제에서 오류에 대해 드라이버에 알릴 수 없습니다. 이 이벤트 알림의 비동기 특성으로 인해 요청 애플리케이션에 이벤트 배달이 보장되지 않습니다. 요청 애플리케이션까지 이벤트 정보가 손실된 경우 애플리케이션은 손실된 이벤트에서 복구할 수 있어야 합니다.

디바이스 이벤트를 만드는 방법에 대한 자세한 내용은 UMDF 드라이버에서 디바이스 인터페이스 사용을 참조하세요.

요구 사항

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

추가 정보

FIELD_OFFSET

IWDFDevice

TARGET_DEVICE_CUSTOM_NOTIFICATION

WdfDevicePostEvent