Share via


ReadMsgQueueEx (Compact 2013)

3/28/2014

This function reads a single message from a message queue, and optionally returns the security context, or token, from the writer. This allows message queue servers to run at the security level of the message queue client, so that the message queue server will fail if it attempts a privileged operation.

Syntax

BOOL ReadMsgQueueEx(
  HANDLE hMsgQ, 
  LPVOID lpBuffer,
  DWORD cbBufferSize,
  LPDWORD lpNumberOfBytesRead,
  DWORD dwTimeout,
  DWORD *pdwFlags,
  PHANDLE phTok
);

Parameters

  • hMsgQ
    [in] Handle to the message queue.
  • lpBuffer
    [in, out] Pointer to the buffer that will receive the message.
  • cbBufferSize
    [in] Size of the buffer that receives the message.
  • lpNumberOfBytesRead
    [in, out] Number of bytes read.
  • dwTimeout
    [in] Timeout for the read operation.
  • pdwFlags
    [in, out] Receives the flag sent by the writer of the message queue.
  • phTok
    [in, out] Receives the token handle of the writer of the message queue. Set to NULL if you do not need the security token for the writer. The caller is responsible for calling CloseHandle on the token returned.

Return Value

TRUE indicates success. FALSE indicates failure. To obtain extended error information, call the GetLastError function.

Remarks

If *phTok returns a NULL value, the returned token is NULL, so the sender is a kernel thread, and cannot be impersonated.

When the message queue is read, the reader may open a handle to the writer's security token. The reader can use the token to impersonate the writer's security context.

Requirements

Header

msgqueue.h

Library

coredll.lib

See Also

Reference

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