// sdpnode.h
typedef union _SDP_NODE_DATA {
SDP_LARGE_INTEGER_16 int128;
SDP_ULARGE_INTEGER_16 uint128;
GUID uuid128;
ULONG uuid32;
USHORT uuid16;
LONGLONG int64;
ULONGLONG uint64;
LONG int32;
ULONG uint32;
SHORT int16;
USHORT uint16;
CHAR int8;
UCHAR uint8;
SDP_BOOLEAN boolean;
PCHAR string;
PCHAR url;
SDP_NODE_HEADER sequence;
SDP_NODE_HEADER alternative;
ISdpNodeContainer *container;
struct {
PUCHAR stream;
ULONG streamLength;
};
} SDP_NODE_DATA, *PSDP_NODE_DATA;
View the official Windows Driver Kit DDI referenceNo description available.
The SDP_NODE_DATA union holds the data of an element in a tree-based representation of an SDP record.
int128The union member for a 128-bit integer.
uint128The union member for an unsigned 128-bit integer.
uuid128The union member for a 128-bit universally unique identifier (UUID).
uuid32The union member for a 32-bit UUID.
uuid16The union member for a 16-bit UUID.
int64The union member for a 64-bit integer.
uint64The union member for an unsigned 64-bit integer.
int32The union member for a 32-bit integer.
uint32The union member for an unsigned 32-bit integer.
int16The union member for a 16-bit integer.
uint16The union member for an unsigned 16-bit integer.
int8The union reserved for an 8-bit integer.
uint8The union member for an unsigned 8-bit integer.
booleanThe union member for a Boolean value.
stringThe union member for a string value.
urlThe union member for a URL value.
sequenceAn SDP_NODE_HEADER structure that references the elements of a sequence.
alternativeAn SDP_NODE_HEADER structure that references the elements of an alternate list sequence.
containerA list of pointers to user-mode specific interfaces.
streamThe address of a portion of the original SDP stream that produced the current SDP node.
streamLengthThe length of the portion of the original SDP stream that produced the current SDP node.
Each SDP_NODE structure in the tree representation of an SDP record contains a SDP_NODE_HEADER structure and an SDP_NODE_DATA union.
The header specifies the type of data. Driver developers can access links to peer SDP_NODE structures by calling the LIST_ENTRY structure of the header. By evaluating Node.hdr.Link.Flinkand Node.hdr.Link.Blink, drivers can obtain the addresses of peer nodes in the tree. Keep in mind that LIST_ENTRY pointers contain the addresses of other LIST_ENTRY structures, and that the profile driver must use the CONTAINING_RECORD memory manager macro to extract the address of the containing node record.
The unnamed struct contains the union member for a 128-bit integer.