IO_STATUS_BLOCK
NpReadDataQueue(
  IN  PDATA_QUEUE ReadQueue,
  IN  BOOLEAN PeekOperation,
  IN  BOOLEAN ReadOverflowOperation,
  IN  PUCHAR ReadBuffer,
  IN  ULONG ReadLength,
  IN  READ_MODE ReadMode,
  IN  PCCB Ccb
  );

Routine Description:

    This procedure reads data from the read queue and fills up the
    read buffer.  It will also dequeue the queue or leave it alone based
    on an input parameter.

Arguments:

    ReadQueue - Provides the read queue to examine.  Its state must
        already be set to WriteEntries.

    PeekOperation - Indicates if the operation is to dequeue information
        off of the queue as it is being read or leave the queue alone.
        TRUE means to leave the queue alone.

    ReadOverflowOperation - Indicates if this is a read overflow operation.
        With read overflow we will not alter the named pipe if the data
        will overflow the read buffer.

    ReadBuffer - Supplies a buffer to receive the data

    ReadLength - Supplies the length, in bytes, of ReadBuffer.

    ReadMode - Indicates if the read operation is message mode or
        byte stream mode.

    NamedPipeEnd - Supplies the end of the named pipe doing the read

    Ccb - Supplies the ccb for the pipe

Return Value:

    IO_STATUS_BLOCK - Indicates the result of the operation.