twain3.0/3rdparty/ddk/bthsdpddi.h

267 lines
8.2 KiB
C

#ifndef __BTHSDPDDI_H__
#define __BTHSDPDDI_H__
#if (NTDDI_VERSION >= NTDDI_VISTA)
#ifdef __cplusplus
extern "C" {
#endif
#define BTHDDI_SDP_PARSE_INTERFACE_VERSION_FOR_QI (0x0100)
#define BTHDDI_SDP_NODE_INTERFACE_VERSION_FOR_QI (0x0100)
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_TREE_ROOT_NODE (*PCREATENODETREEROOT)(__in ULONG tag);
__drv_sameIRQL
typedef NTSTATUS (*PFREETREE)(__in __drv_freesMem(Mem) PSDP_TREE_ROOT_NODE Tree);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PAPPENDNODETOCONTAINERNODE)(__in PSDP_NODE Container,
__in __drv_aliasesMem PSDP_NODE Node);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PADDATTRIBUTETOTREEE)(__in PSDP_TREE_ROOT_NODE Root,
__in USHORT AttribId,
__in __drv_aliasesMem PSDP_NODE AttribValueNode,
__in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODENIL)(__in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEBOOLEAN)(__in UCHAR bVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUINT8)(__in UCHAR ucVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUINT16)(__in USHORT usVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUINT32)(__in ULONG ulVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUINT64)(__in ULONGLONG ullVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUINT128)(__in PSDP_ULARGE_INTEGER_16 puli16Val, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEINT8)(__in CHAR cVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEINT16)(__in SHORT sVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEINT32)(__in LONG lVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEINT64)(__in LONGLONG llVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEINT128)(__in PSDP_LARGE_INTEGER_16 pul16Val, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUUID16)(__in USHORT usVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUUID32)(__in ULONG ulVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEUUID128)(__in const GUID * pUuidVal, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODESTRING)(__in_bcount(stringLength) PCHAR string, __in ULONG stringLength, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEURL)(__in_bcount(urlLength) PCHAR url, __in ULONG urlLength, __in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODEALTERNATIVE)(__in ULONG tag);
__checkReturn
__drv_sameIRQL
__drv_when(return!=0, __drv_allocatesMem(Mem))
typedef PSDP_NODE (*PCREATENODESEQUENCE)(__in ULONG tag);
//
// GUID_BTHDDI_SDP_NODE_INTERFACE
//
typedef struct _BTHDDI_SDP_NODE_INTERFACE {
INTERFACE Interface;
PCREATENODETREEROOT SdpCreateNodeTree;
PFREETREE SdpFreeTree;
PCREATENODENIL SdpCreateNodeNil;
PCREATENODEBOOLEAN SdpCreateNodeBoolean;
PCREATENODEUINT8 SdpCreateNodeUint8;
PCREATENODEUINT16 SdpCreateNodeUint16;
PCREATENODEUINT32 SdpCreateNodeUint32;
PCREATENODEUINT64 SdpCreateNodeUint64;
PCREATENODEUINT128 SdpCreateNodeUint128;
PCREATENODEINT8 SdpCreateNodeInt8;
PCREATENODEINT16 SdpCreateNodeInt16;
PCREATENODEINT32 SdpCreateNodeInt32;
PCREATENODEINT64 SdpCreateNodeInt64;
PCREATENODEINT128 SdpCreateNodeInt128;
PCREATENODEUUID16 SdpCreateNodeUuid16;
PCREATENODEUUID32 SdpCreateNodeUuid32;
PCREATENODEUUID128 SdpCreateNodeUuid128;
PCREATENODESTRING SdpCreateNodeString;
PCREATENODEURL SdpCreateNodeUrl;
PCREATENODEALTERNATIVE SdpCreateNodeAlternative;
PCREATENODESEQUENCE SdpCreateNodeSequence;
PADDATTRIBUTETOTREEE SdpAddAttributeToTree;
PAPPENDNODETOCONTAINERNODE SdpAppendNodeToContainerNode;
} BTHDDI_SDP_NODE_INTERFACE, *PBTHDDI_SDP_NODE_INTERFACE;
__drv_sameIRQL
typedef void (*PBYTESWAPUUID128)(__in GUID *pUuidFrom, __out GUID *pUuiidTo);
__drv_sameIRQL
typedef void (*PBYTESWAPUINT128)(__in PSDP_ULARGE_INTEGER_16 pInUint128,
__out PSDP_ULARGE_INTEGER_16 pOutUint128);
__drv_sameIRQL
typedef ULONGLONG (*PBYTESWAPUINT64)(__in ULONGLONG uint64);
__drv_sameIRQL
typedef void (*PRETRIEVEUUID128)(__in PUCHAR Stream, __out GUID *uuid128);
__drv_sameIRQL
typedef void (*PRETRIEVEUINT128)(__in PUCHAR Stream,
__out PSDP_ULARGE_INTEGER_16 pUint128);
__drv_sameIRQL
typedef void (*PRETRIEVEUINT64)(__in PUCHAR Stream, __out PULONGLONG pUint16);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PVALIDATESTREAM)(__in_bcount(Size) PUCHAR Stream,
__in ULONG Size,
__out PULONG_PTR ErrorByte);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PFINDATTRIBUTEINTREE)(__in PSDP_TREE_ROOT_NODE Tree,
__in USHORT AttribId,
__deref_out PSDP_NODE *AttribValue);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PCONVERTTREETOSTREAM)(__in PSDP_TREE_ROOT_NODE Root,
__post __drv_when(return==0, __drv_allocatesMem(Mem)) PUCHAR *Stream,
__out PULONG Size,
__in ULONG tag);
__checkReturn
__drv_sameIRQL
typedef NTSTATUS (*PCONVERTSTREAMTOTREE)(__in_bcount(Size) PUCHAR Stream,
__in ULONG Size,
__out PSDP_TREE_ROOT_NODE *Node,
__in ULONG tag);
__drv_sameIRQL
typedef VOID (*PGETNEXTELEMENT)(__in_bcount(StreamSize) PUCHAR Stream,
__in ULONG StreamSize,
__in PUCHAR CurrentElement,
__deref_out_bcount(*NextElementSize) PUCHAR* NextElement,
__out PULONG NextElementSize);
typedef VOID (*pReservedFunction)();
#ifndef __BTHSDPDDIP_H__
typedef struct _BTHDDI_SDP_PARSE_INTERFACE {
INTERFACE Interface;
PVALIDATESTREAM SdpValidateStream;
PCONVERTSTREAMTOTREE SdpConvertStreamToTree;
PCONVERTTREETOSTREAM SdpConvertTreeToStream;
PFREETREE SdpFreeTree;
PBYTESWAPUUID128 SdpByteSwapUuid128;
PBYTESWAPUINT128 SdpByteSwapUint128;
PBYTESWAPUINT64 SdpByteSwapUint64;
PRETRIEVEUUID128 SdpRetrieveUuid128;
PRETRIEVEUINT128 SdpRetrieveUint128;
PRETRIEVEUINT64 SdpRetrieveUint64;
PFINDATTRIBUTEINTREE SdpFindAttributeInTree;
PGETNEXTELEMENT SdpGetNextElement;
pReservedFunction Reserved1;
pReservedFunction Reserved2;
pReservedFunction Reserved3;
pReservedFunction Reserved4;
} BTHDDI_SDP_PARSE_INTERFACE, *PBTHDDI_SDP_PARSE_INTERFACE;
#endif
#ifdef __cplusplus
}
#endif
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#endif // __BTHSDPDDI_H__