Método IWDFDevice::P ostEvent (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui o UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum recurso novo está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução aoda UMDF .]
O método PostEvent notifica de forma assíncrona os aplicativos que estão aguardando o evento especificado de um driver.
Sintaxe
HRESULT PostEvent(
[in] REFGUID EventGuid,
[in] WDF_EVENT_TYPE EventType,
[in] BYTE *pbData,
[in] DWORD cbDataSize
);
Parâmetros
[in] EventGuid
O GUID do evento. O GUID é determinado pelo aplicativo e pelo driver e é opaco para a estrutura.
[in] EventType
Um valor WDF_EVENT_TYPEdigitado 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 WdfEventBroadcast-type. Para receber eventos de transmissão, o aplicativo deve se registrar para notificação por meio da função RegisterDeviceNotification do Microsoft Win32. eventos do tipoWdfEventBroadcast são expostos como eventos de tipo DBT_CUSTOMEVENT para aplicativos.
[in] pbData
Um ponteiro para um buffer que contém dados associados ao evento. NULL é um valor válido.
[in] cbDataSize
O tamanho, em bytes, de dados que pbData aponta para. Zero será um valor de tamanho válido se pbData estiver definido como NULL.
O tamanho máximo dos dados de evento é ligeiramente menor que MAXUSHORT (64 KB). O limite superior preciso é (0xFFFF – FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer)).
Valor de retorno
PostEvent retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
Os dados do evento foram enviados com êxito para o sistema operacional. |
|
O tamanho dos dados especificado pelo parâmetro cbDataSize é maior que o tamanho máximo permitido. |
|
O parâmetro EventType não está definido como WdfEventBroadcast (1). |
|
postEvent não pôde alocar memória necessária para que ela fosse concluída. |
postEvent também pode retornar outros valores HRESULT.
Observações
Quando o driver chama IWDFDevice::P ostEvent para notificar o aplicativo solicitante sobre um evento, a 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, o driver não receberá nenhum erro (S_OK). 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.
Para obter informações sobre como criar eventos de dispositivo, consulte Usando interfaces de dispositivo em drivers UMDF.
Requisitos
Requisito | Valor |
---|---|
fim do suporte | Indisponível no UMDF 2.0 e posterior. |
da Plataforma de Destino | Área de trabalho |
versão mínima do UMDF | 1.5 |
cabeçalho | wudfddi.h (inclua Wudfddi.h) |
de DLL | WUDFx.dll |