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 |
---|---|
|
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 |