DosCreateQueue

Creates a queue.

Syntax
DosCreateQueue(phq, priority, pszName)

Parameters

 * phq (PHQUEUE) - output : A pointer to the read/write handle of the queue that is being created.
 * After DosCreateQueue returns, this handle may be used immediately by the requesting process; it is not necessary to issue DosOpenQueue.


 * priority (ULONG) - input : Priority-ordering algorithm flag.
 * A set of flags that indicate which priority-ordering algorithm to use when placing elements in the queue, and whether or not to convert to 32-bit addresses the addresses of elements that are placed in the queue by 16-bit processes. Possible values are a combination of the values of the following two flags:
 * Priority-algorithm flag
 * QUE_FIFO (0x00000000) FIFO queue.
 * QUE_LIFO (0x00000001) LIFO queue.
 * QUE_PRIORITY (0x00000002) Priority queue: the requesting process specifies priority 0 to 15, with 15 being the highest priority.
 * Address-conversion flag
 * QUE_NOCONVERT_ADDRESS (0x00000000)The data addresses of elements placed in the queue by 16-bit processes are not converted.
 * QUE_CONVERT_ADDRESS (0x00000004) The data addresses of elements placed in the queue by 16-bit processes are converted to 32-bit data addresses.


 * pszName (PSZ) - input : A pointer to the ASCIIZ name of the queue.
 * The name string must include \QUEUES\ as the first element of the path. For example, \QUEUES\RETRIEVE\CONTROL.QUE is a valid queue name. This name must be specified by a client process in a DosOpenQueue request before the client process can add an element to the queue.

Return Code

 * ulrc (APIRET) - returns:DosCreateQueue returns one of the following values:
 * 0 NO_ERROR
 * 87 ERROR_INVALID_PARAMETER
 * 332 ERROR_QUE_DUPLICATE
 * 334 ERROR_QUE_NO_MEMORY
 * 335 ERROR_QUE_INVALID_NAME

Related Functions

 * DosCloseQueue
 * DosOpenQueue
 * DosPeekQueue
 * DosPurgeQueue
 * DosQueryQueue
 * DosReadQueue
 * DosWriteQueue