Share via


WriteMsgQueue

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função grava uma única mensagem para um fila de mensagens.

Syntax

BOOL WriteMsgQueue(
  HANDLE hMsgQ,
  LPVOID lpBuffer,
  DWORD cbDataSize,
  DWORD dwTimeout,
  DWORD dwFlags
);

Parameters

  • hMsgQ
    [no] Identificador para um aberto fila de mensagens.
  • lpBuffer
    [no] Ponteiro para uma reserva que contém dados para gravar um fila de mensagens. Esse parâmetro não pode ser NULL.
  • dwTimeout
    [no] Quantidade de tempo, em milissegundos, antes de operação de gravação expirar. Se zero for especificado, o operação de gravação não bloco quando o operação de gravação não pode ser executada. Se você definir o parâmetro para infinite, os blocos operação de gravação até que o operação de gravação é bem-sucedida ou alterado o status fila.
  • cbDataSize
    [no] Número de bytes armazenados em lpBuffer que compõem uma mensagem. Este parâmetro não pode ser zero.
  • dwFlags
    [no] DWORD valor para indicar as propriedades da mensagem.

    Defina este parâmetro como MSGQUEUE_MSGALERT para especificar que a mensagem é um mensagem de alerta. Pode haver apenas um pendente mensagem de alerta na fila, portanto, esse valor é tratada como uma dica. Se houver já um mensagem de alerta na fila, este sinalizador é ignorado, e a mensagem é adicionada para a fila como uma mensagem normal no final de fila.

    Este parâmetro pode ser definido como zero ou NULL.

Return Value

TRUE indica sucesso. FALSE indica falha. Para obter informações de erro estendidas, chamar GetLastError. A seguinte tabela mostra possíveis valores retornados por GetLastError.

Valor Descrição

ERROR_INSUFFICIENT_BUFFER

O tamanho de lpBuffer era muito pequeno para acomodar uma mensagem.

ERROR_OUTOFMEMORY

MSGQUEUE_NOPRECOMMIT foi especificado, e não havia memória suficiente alocar para a mensagem.

ERROR_PIPE_NOT_CONNECTED

Indica que há não leitores anexado para o fila de mensagens.

Se todos o leitores sair enquanto o gravador está bloqueado e você não especificar MSGQUEUE_ALLOW_BROKEN, a falha operação de gravação, e GetLastError Retorna este valor.

Observação

O GetLastError função NÃO retorna esse valor se você especificado MSGQUEUE_ALLOW_BROKEN quando você criou a fila e você escreve uma mensagem para o qual não haja nenhum leitor anexado para a fila.

ERROR_TIMEOUT

O tempo limite atingido operação de gravação out antes ele pôde gravar seus dados.

Requirements

Header msgqueue.h
Library coredll.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Message Queue Point-to-Point Functions
CloseMsgQueue
CreateMsgQueue
GetMsgQueueInfo
MSGQUEUEINFO
MSGQUEUEOPTIONS
OpenMsgQueue
ReadMsgQueue
ReadMsgQueueEx

Other Resources

Message Queue Point-to-Point