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의 현재 버전에서 드라이버는 EventType 을 WdfEventBroadcast (1)로 설정해야 합니다. WdfEventBroadcast 는 이벤트가 브로드캐스트됨을 나타냅니다. 애플리케이션은 WdfEventBroadcast 형식 이벤트를 구독할 수 있습니다. 브로드캐스트 이벤트를 수신하려면 애플리케이션이 Microsoft Win32 RegisterDeviceNotification 함수를 통해 알림을 등록해야 합니다. WdfEventBroadcast 형식 이벤트는 애플리케이션에 DBT_CUSTOMEVENT 형식 이벤트로 노출됩니다.
[in] pbData
이벤트와 연결된 데이터를 포함하는 버퍼에 대한 포인터입니다. NULL 은 유효한 값입니다.
[in] cbDataSize
pbData가 가리키는 데이터의 크기(바이트)입니다. pbData가 NULL로 설정된 경우 0은 유효한 크기 값입니다.
이벤트 데이터의 최대 크기는 MAXUSHORT(64KB)보다 약간 작습니다. 정확한 상한은 (0xFFFF - FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)입니다.
반환 값
PostEvent 는 다음 값 중 하나를 반환합니다.
반환 코드 | Description |
---|---|
|
이벤트 데이터가 운영 체제로 성공적으로 전송되었습니다. |
|
cbDataSize 매개 변수가 지정하는 데이터 크기가 허용되는 최대 크기보다 큽니다. |
|
EventType 매개 변수가 WdfEventBroadcast(1)로 설정되지 않았습니다. |
|
PostEvent 가 완료하는 데 필요한 메모리를 할당할 수 없습니다. |
PostEvent 는 다른 HRESULT 값을 반환할 수도 있습니다.
설명
드라이버가 IWDFDevice::P ostEvent 를 호출하여 요청 애플리케이션에 이벤트에 대해 알리면 UMDF는 이벤트를 운영 체제로 보냅니다. 운영 체제는 비동기 작업에서 요청 애플리케이션에 이벤트를 보냅니다. 운영 체제에서 처음에 오류를 반환하지 않으면 드라이버는 오류(S_OK)를 받지 않습니다. 그러나 나중에 운영 체제가 이벤트 제공을 시도하는 동안 오류가 발생하는 경우(메모리 부족 상태일 수 있음) 운영 체제에서 오류에 대해 드라이버에 알릴 수 없습니다. 이 이벤트 알림의 비동기 특성으로 인해 요청 애플리케이션에 이벤트 배달이 보장되지 않습니다. 요청 애플리케이션까지 이벤트 정보가 손실된 경우 애플리케이션은 손실된 이벤트에서 복구할 수 있어야 합니다.
디바이스 이벤트를 만드는 방법에 대한 자세한 내용은 UMDF 드라이버에서 디바이스 인터페이스 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 데스크톱 |
최소 UMDF 버전 | 1.5 |
머리글 | wudfddi.h(Wudfddi.h 포함) |
DLL | WUDFx.dll |