Compartilhar via


Função WdfDevicePostEvent (wdfdevice.h)

[Aplica-se somente ao UMDF]

O método WdfDevicePostEvent notifica de forma assíncrona os aplicativos que estão aguardando o evento especificado de um driver.

Sintaxe

NTSTATUS WdfDevicePostEvent(
  [in] WDFDEVICE      Device,
  [in] REFGUID        EventGuid,
  [in] WDF_EVENT_TYPE WdfEventType,
  [in] BYTE           *Data,
  [in] ULONG          DataSizeCb
);

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

[in] EventGuid

O GUID do evento. O GUID é determinado pelo aplicativo e pelo driver e é opaco para a estrutura.

[in] WdfEventType

Um valor de tipo WDF_EVENT_TYPE que identifica o tipo de evento. Na versão atual do UMDF, o driver deve definir EventType como WdfEventBroadcast (1). WdfEventBroadcast indica que o evento é transmitido. Os aplicativos podem assinar eventos do tipo WdfEventBroadcast. Para receber eventos de difusão, o aplicativo deve se registrar para notificação por meio da função RegisterDeviceNotification do Microsoft Win32. Os eventos do tipo WdfEventBroadcast são expostos como eventos do tipo DBT_CUSTOMEVENT para aplicativos.

[in] Data

Um ponteiro para um buffer que contém dados associados ao evento. NULL é um valor válido.

[in] DataSizeCb

O tamanho, em bytes, dos dados para os quais os Dados apontam. Zero será um valor de tamanho válido se Data estiver definido como NULL.

Retornar valor

Se a operação for bem-sucedida, WdfDevicePostEvent retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
WdfEventType não está definido como WdfEventBroadcast.
 

O método pode retornar outros valores NTSTATUS.

Comentários

Quando o driver chama WdfDevicePostEvent para notificar o aplicativo solicitante sobre um evento, o UMDF envia o evento para o sistema operacional. O sistema operacional envia o evento para o aplicativo solicitante em uma operação assíncrona. Se o sistema operacional inicialmente não retornar nenhum erro, WdfDevicePostEvent retornará STATUS_SUCCESS.

No entanto, posteriormente, se o sistema operacional receber um erro enquanto tenta entregar o evento (possivelmente devido a uma condição de memória baixa), o sistema operacional não poderá informar o driver sobre o erro. Devido à natureza assíncrona dessa notificação de evento, a entrega do evento para o aplicativo solicitante não é garantida.

Se as informações do evento forem perdidas no caminho até o aplicativo solicitante, o aplicativo deverá ser capaz de se recuperar do evento perdido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1
Plataforma de Destino Universal
Versão mínima do UMDF 2,0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca WUDFx02000.lib
DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Confira também

IWDFDevice::P ostEvent

WDF_EVENT_TYPE