📄 cs.h
字号:
0,\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_COMMUNICATION(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_COMMUNICATION,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(CSPIN_COMMUNICATION),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_GLOBALCINSTANCES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_GLOBALCINSTANCES,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(CSPIN_CINSTANCES),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_NECESSARYINSTANCES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_NECESSARYINSTANCES,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(ULONG),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_PHYSICALCONNECTION(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_PHYSICALCONNECTION,\
(Handler),\
sizeof(CSP_PIN),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_CATEGORY(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_CATEGORY,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(GUID),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_NAME(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_NAME,\
(Handler),\
sizeof(CSP_PIN),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_CONSTRAINEDDATARANGES,\
(Handler),\
sizeof(CSP_PIN),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_PROPOSEDATAFORMAT(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_PROPOSEDATAFORMAT,\
NULL,\
sizeof(CSP_PIN),\
sizeof(CSDATAFORMAT),\
(Handler), NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_PINSET(PinSet,\
PropGeneral, PropInstances, PropIntersection) \
DEFINE_CSPROPERTY_TABLE(PinSet) {\
DEFINE_CSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
DEFINE_CSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
DEFINE_CSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_NAME(PropGeneral)\
}
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_PINSETCONSTRAINED(PinSet,\
PropGeneral, PropInstances, PropIntersection)\
DEFINE_CSPROPERTY_TABLE(PinSet) {\
DEFINE_CSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
DEFINE_CSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_DATAFLOW(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
DEFINE_CSPROPERTY_ITEM_PIN_INTERFACES(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_MEDIUMS(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_COMMUNICATION(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_NAME(PropGeneral),\
DEFINE_CSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(PropGeneral)\
}
#define STATIC_CSNAME_Filter\
0x9b365890L, 0x165f, 0x11d0, 0xa1, 0x95, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4
DEFINE_GUIDSTRUCT("9b365890-165f-11d0-a195-0020afd156e4", CSNAME_Filter);
#define CSNAME_Filter DEFINE_GUIDNAMED(CSNAME_Filter)
#define CSSTRING_Filter L"{9B365890-165F-11D0-A195-0020AFD156E4}"
#define STATIC_CSNAME_Pin\
0x146F1A80L, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("146F1A80-4791-11D0-A5D6-28DB04C10000", CSNAME_Pin);
#define CSNAME_Pin DEFINE_GUIDNAMED(CSNAME_Pin)
#define CSSTRING_Pin L"{146F1A80-4791-11D0-A5D6-28DB04C10000}"
#define STATIC_CSNAME_Clock\
0x53172480L, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000", CSNAME_Clock);
#define CSNAME_Clock DEFINE_GUIDNAMED(CSNAME_Clock)
#define CSSTRING_Clock L"{53172480-4791-11D0-A5D6-28DB04C10000}"
#define STATIC_CSNAME_Allocator\
0x642F5D00L, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("642F5D00-4791-11D0-A5D6-28DB04C10000", CSNAME_Allocator);
#define CSNAME_Allocator DEFINE_GUIDNAMED(CSNAME_Allocator)
#define CSSTRING_Allocator L"{642F5D00-4791-11D0-A5D6-28DB04C10000}"
#define CSSTRING_AllocatorEx L"{091BB63B-603F-11D1-B067-00A0C9062802}"
#define STATIC_CSNAME_TopologyNode\
0x0621061AL, 0xEE75, 0x11D0, 0xB9, 0x15, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("0621061A-EE75-11D0-B915-00A0C9223196", CSNAME_TopologyNode);
#define CSNAME_TopologyNode DEFINE_GUIDNAMED(CSNAME_TopologyNode)
#define CSSTRING_TopologyNode L"{0621061A-EE75-11D0-B915-00A0C9223196}"
#if defined(_NTDDK_)
typedef struct {
ULONG InterfacesCount;
const CSPIN_INTERFACE* Interfaces;
ULONG MediumsCount;
const CSPIN_MEDIUM* Mediums;
ULONG DataRangesCount;
const PCSDATARANGE* DataRanges;
CSPIN_DATAFLOW DataFlow;
CSPIN_COMMUNICATION Communication;
const GUID* Category;
const GUID* Name;
union {
LONGLONG Reserved;
struct {
ULONG ConstrainedDataRangesCount;
PCSDATARANGE* ConstrainedDataRanges;
};
};
} CSPIN_DESCRIPTOR, *PCSPIN_DESCRIPTOR;
typedef const CSPIN_DESCRIPTOR *PCCSPIN_DESCRIPTOR;
#define DEFINE_CSPIN_DESCRIPTOR_TABLE(tablename)\
const CSPIN_DESCRIPTOR tablename[] =
#define DEFINE_CSPIN_DESCRIPTOR_ITEM(\
InterfacesCount, Interfaces,\
MediumsCount, Mediums,\
DataRangesCount, DataRanges,\
DataFlow, Communication)\
{\
InterfacesCount, Interfaces, MediumsCount, Mediums,\
DataRangesCount, DataRanges, DataFlow, Communication,\
NULL, NULL, 0\
}
#define DEFINE_CSPIN_DESCRIPTOR_ITEMEX(\
InterfacesCount, Interfaces,\
MediumsCount, Mediums,\
DataRangesCount, DataRanges,\
DataFlow, Communication,\
Category, Name)\
{\
InterfacesCount, Interfaces, MediumsCount, Mediums,\
DataRangesCount, DataRanges, DataFlow, Communication,\
Category, Name, 0\
}
#endif // defined(_NTDDK_)
#endif //#ifndef UNDER_CE
//===========================================================================
// MEDIATYPE_NULL
#define STATIC_CSDATAFORMAT_TYPE_WILDCARD STATIC_GUID_NULL
#define CSDATAFORMAT_TYPE_WILDCARD GUID_NULL
// MEDIASUBTYPE_NULL
#define STATIC_CSDATAFORMAT_SUBTYPE_WILDCARD STATIC_GUID_NULL
#define CSDATAFORMAT_SUBTYPE_WILDCARD GUID_NULL
// MEDIATYPE_Stream
#define STATIC_CSDATAFORMAT_TYPE_STREAM\
0xE436EB83L, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70
DEFINE_GUIDSTRUCT("E436EB83-524F-11CE-9F53-0020AF0BA770", CSDATAFORMAT_TYPE_STREAM);
#define CSDATAFORMAT_TYPE_STREAM DEFINE_GUIDNAMED(CSDATAFORMAT_TYPE_STREAM)
// MEDIASUBTYPE_None
#define STATIC_CSDATAFORMAT_SUBTYPE_NONE\
0xE436EB8EL, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70
DEFINE_GUIDSTRUCT("E436EB8E-524F-11CE-9F53-0020AF0BA770", CSDATAFORMAT_SUBTYPE_NONE);
#define CSDATAFORMAT_SUBTYPE_NONE DEFINE_GUIDNAMED(CSDATAFORMAT_SUBTYPE_NONE)
#define STATIC_CSDATAFORMAT_SPECIFIER_WILDCARD STATIC_GUID_NULL
#define CSDATAFORMAT_SPECIFIER_WILDCARD GUID_NULL
#define STATIC_CSDATAFORMAT_SPECIFIER_FILENAME\
0xAA797B40L, 0xE974, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("AA797B40-E974-11CF-A5D6-28DB04C10000", CSDATAFORMAT_SPECIFIER_FILENAME);
#define CSDATAFORMAT_SPECIFIER_FILENAME DEFINE_GUIDNAMED(CSDATAFORMAT_SPECIFIER_FILENAME)
#define STATIC_CSDATAFORMAT_SPECIFIER_FILEHANDLE\
0x65E8773CL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("65E8773C-8F56-11D0-A3B9-00A0C9223196", CSDATAFORMAT_SPECIFIER_FILEHANDLE);
#define CSDATAFORMAT_SPECIFIER_FILEHANDLE DEFINE_GUIDNAMED(CSDATAFORMAT_SPECIFIER_FILEHANDLE)
// FORMAT_None
#define STATIC_CSDATAFORMAT_SPECIFIER_NONE\
0x0F6417D6L, 0xC318, 0x11D0, 0xA4, 0x3F, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("0F6417D6-C318-11D0-A43F-00A0C9223196", CSDATAFORMAT_SPECIFIER_NONE);
#define CSDATAFORMAT_SPECIFIER_NONE DEFINE_GUIDNAMED(CSDATAFORMAT_SPECIFIER_NONE)
#ifndef UNDER_CE
//===========================================================================
#define STATIC_CSPROPSETID_Quality \
0xD16AD380L, 0xAC1A, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("D16AD380-AC1A-11CF-A5D6-28DB04C10000", CSPROPSETID_Quality);
#define CSPROPSETID_Quality DEFINE_GUIDNAMED(CSPROPSETID_Quality)
typedef enum {
CSPROPERTY_QUALITY_REPORT,
CSPROPERTY_QUALITY_ERROR
} CSPROPERTY_QUALITY;
#define DEFINE_CSPROPERTY_ITEM_QUALITY_REPORT(GetHandler, SetHandler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_QUALITY_REPORT,\
(GetHandler),\
sizeof(CSPROPERTY),\
sizeof(CSQUALITY),\
(SetHandler),\
NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_QUALITY_ERROR(GetHandler, SetHandler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_QUALITY_ERROR,\
(GetHandler),\
sizeof(CSPROPERTY),\
sizeof(CSERROR),\
(SetHandler),\
NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
//===========================================================================
#define STATIC_CSPROPSETID_Connection \
0x1D58C920L, 0xAC9B, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("1D58C920-AC9B-11CF-A5D6-28DB04C10000", CSPROPSETID_Connection);
#define CSPROPSETID_Connection DEFINE_GUIDNAMED(CSPROPSETID_Connection)
typedef enum {
CSPROPERTY_CONNECTION_STATE,
#ifndef UNDER_CE
CSPROPERTY_CONNECTION_PRIORITY,
#endif //#ifndef UNDER_CE
CSPROPERTY_CONNECTION_DATAFORMAT,
CSPROPERTY_CONNECTION_ALLOCATORFRAMING,
CSPROPERTY_CONNECTION_PROPOSEDATAFORMAT,
#ifndef UNDER_CE
CSPROPERTY_CONNECTION_ACQUIREORDERING,
#endif //#ifndef UNDER_CE
CSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX
#ifndef UNDER_CE
,
CSPROPERTY_CONNECTION_STARTAT
#endif //#ifndef UNDER_CE
} CSPROPERTY_CONNECTION;
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_STATE(GetHandler, SetHandler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_STATE,\
(GetHandler),\
sizeof(CSPROPERTY),\
sizeof(CSSTATE),\
(SetHandler),\
NULL, 0, NULL, NULL, 0)
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_PRIORITY(GetHandler, SetHandler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_PRIORITY,\
(GetHandler),\
sizeof(CSPROPERTY),\
sizeof(CSPRIORITY),\
(SetHandler),\
NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_DATAFORMAT(GetHandler, SetHandler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_DATAFORMAT,\
(GetHandler),\
sizeof(CSPROPERTY),\
0,\
(SetHandler),\
NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_ALLOCATORFRAMING(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_ALLOCATORFRAMING,\
(Handler),\
sizeof(CSPROPERTY),\
sizeof(CSALLOCATOR_FRAMING),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_ALLOCATORFRAMING_EX(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX,\
(Handler),\
sizeof(CSPROPERTY),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_PROPOSEDATAFORMAT(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_PROPOSEDATAFORMAT,\
NULL,\
sizeof(CSPROPERTY),\
sizeof(CSDATAFORMAT),\
(Handler),\
NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_ACQUIREORDERING(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_ACQUIREORDERING,\
(Handler),\
sizeof(CSPROPERTY),\
sizeof(int),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_CONNECTION_STARTAT(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_CONNECTION_STARTAT,\
NULL,\
sizeof(CSPROPERTY),\
sizeof(CSRELATIVEEVENT),\
(Handler),\
NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
//===========================================================================
//
// pins flags
//
#define CSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER 0x00000001
#define CSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY 0x00000002
#define CSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY 0x00000004
#define CSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE 0x00000008
#define CSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY 0x80000000
#define CSALLOCATOR_OPTIONF_COMPATIBLE 0x00000001
#define CSALLOCATOR_OPTIONF_SYSTEM_MEMORY 0x00000002
#define CSALLOCATOR_OPTIONF_VALID 0x00000003
//
// pins extended framing flags
//
#define CSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT 0x00000010
#define CSALLOCATOR_FLAG_DEVICE_SPECIFIC 0x00000020
#define CSALLOCATOR_FLAG_CAN_ALLOCATE 0x00000040
#define CSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO 0x00000080
//
// allocator pipes flags
//
// there is at least one data modification in a pipe
#define CSALLOCATOR_FLAG_NO_FRAME_INTEGRITY 0x00000100
#define CSALLOCATOR_FLAG_MULTIPLE_OUTPUT 0x00000200
#define CSALLOCATOR_FLAG_CYCLE 0x00000400
#define CSALLOCATOR_FLAG_ALLOCATOR_EXISTS 0x00000800
// there is no framing dependency between neighbouring pipes.
#define CSALLOCATOR_FLAG_INDEPENDENT_RANGES 0x00001000
#define CSALLOCATOR_FLAG_ATTENTION_STEPPING 0x00002000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -