Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.6 KiB

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
BUFFER.H
Abstract:
HEADER for buffers.
Author:
Aaron Ogus (aarono)
Environment:
Win32/COM
Revision History:
Date Author Description
======= ====== ============================================================
1/30/97 aarono Original
2/17/98 aarono changed memdesc to be len,ptr from ptr,len to align with sendex data.
--*/
#ifndef _BUFFER_H_
#define _BUFFER_H_
//
// Buffer is a descriptor for a chunk of data.
//
#include "bilink.h"
typedef struct _BUFFER {
union {
struct _BUFFER *pNext; // Next buffer in chain
BILINK BuffList;
};
PUCHAR pData; // Data area of buffer
UINT len; // length of data area
DWORD dwFlags; // info about the data area
PUCHAR pCmdData; // pointer past header to command data - used in receive path.
DWORD sequence; // absolute sequence number
} BUFFER, *PBUFFER;
#define BFLAG_PROTOCOL 0x00000001 /* This buffer is for protocol information */
#define BFLAG_DOUBLE 0x00000002 /* This buffer is a double buffer buffer */
#define BFLAG_PROTHEADER 0x00000004 /* Room for the protocol header is at the head of the packet */
#define BFLAG_FRAME 0x00000008 /* From Frame allocator */
// PROTHEADER flag will only occur with packets that have the DOUBLE flag set
// and only when the provider does not support multi-buffer sends and the
// entire message and protocol header will fit in one media frame. - actually pretty often.
typedef struct _MEMDESC {
UINT len;
PUCHAR pData;
} MEMDESC, *PMEMDESC;
#endif