Leaked source code of windows server 2003
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.
|
|
#ifndef _SDPNODE_H__
#define _SDPNODE_H__
#ifdef __cplusplus
extern "C" { #endif
typedef UCHAR SDP_BOOLEAN;
typedef struct ISdpNodeContainer ISdpNodeContainer;
typedef struct _SDP_NODE_HEADER { LIST_ENTRY Link; USHORT Type; USHORT SpecificType; } SDP_NODE_HEADER, *PSDP_NODE_HEADER;
typedef union _SDP_NODE_DATA { // the nil type contains no data, so no storage is necessary
// 16 byte integers
//
// ISSUE is there a better way to represent a 16 byte int???
//
SDP_LARGE_INTEGER_16 int128; SDP_ULARGE_INTEGER_16 uint128;
// UUID
GUID uuid128; ULONG uuid32; USHORT uuid16;
// 8 byte integers
LONGLONG int64; ULONGLONG uint64;
// 4 byte integers
LONG int32; ULONG uint32;
// 2 byte integers
SHORT int16; USHORT uint16;
// 1 bytes integers
CHAR int8; UCHAR uint8;
// Boolean
SDP_BOOLEAN boolean;
// string
PCHAR string;
// URL
PCHAR url;
// Sequence
SDP_NODE_HEADER sequence;
// Alt list
SDP_NODE_HEADER alternative;
ISdpNodeContainer *container;
struct { PUCHAR stream; ULONG streamLength; };
} SDP_NODE_DATA, *PSDP_NODE_DATA;
typedef struct _SDP_NODE { SDP_NODE_HEADER hdr;
ULONG DataSize;
SDP_NODE_DATA u;
PVOID Reserved; } SDP_NODE, *PSDP_NODE;
typedef struct _SDP_TREE_ROOT_NODE { SDP_NODE RootNode; } SDP_TREE_ROOT_NODE, *PSDP_TREE_ROOT_NODE;
#define SdpNode_GetType(pNode) ((pNode)->hdr.Type)
#define SdpNode_GetSpecificType(pNode) ((pNode)->hdr.SpecificType)
#define ListEntryToSdpNode(pListEntry) CONTAINING_RECORD((pListEntry), SDP_NODE, hdr.Link)
#define SdpNode_GetNextEntry(pNode) ((pNode)->hdr.Link.Flink)
#define SdpNode_GetPrevEntry(pNode) ((pNode)->hdr.Link.Blink)
#define SdpNode_SequenceGetListHead(pNode) (&(pNode)->u.sequence.Link)
#define SdpNode_SequenceGetFirstNode(pNode) ((pNode)->u.sequence.Link.Flink)
#define SdpNode_AlternativeGetListHead(pNode) (&(pNode)->u.alternative.Link)
#define SdpNode_AlternativeGetFirstNode(pNode) ((pNode)->u.alternative.Link.Flink)
#ifdef __cplusplus
} #endif
#endif // _SDPNODE_H__
|