📄 cs.h
字号:
#define STATIC_CSCATEGORY_BRIDGE \
0x085AFF00L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("085AFF00-62CE-11CF-A5D6-28DB04C10000", CSCATEGORY_BRIDGE);
#define CSCATEGORY_BRIDGE DEFINE_GUIDNAMED(CSCATEGORY_BRIDGE)
#define STATIC_CSCATEGORY_CAPTURE \
0x65E8773DL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("65E8773D-8F56-11D0-A3B9-00A0C9223196", CSCATEGORY_CAPTURE);
#define CSCATEGORY_CAPTURE DEFINE_GUIDNAMED(CSCATEGORY_CAPTURE)
#define STATIC_CSCATEGORY_RENDER \
0x65E8773EL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196", CSCATEGORY_RENDER);
#define CSCATEGORY_RENDER DEFINE_GUIDNAMED(CSCATEGORY_RENDER)
#define STATIC_CSCATEGORY_MIXER \
0xAD809C00L, 0x7B88, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000", CSCATEGORY_MIXER);
#define CSCATEGORY_MIXER DEFINE_GUIDNAMED(CSCATEGORY_MIXER)
#define STATIC_CSCATEGORY_SPLITTER \
0x0A4252A0L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("0A4252A0-7E70-11D0-A5D6-28DB04C10000", CSCATEGORY_SPLITTER);
#define CSCATEGORY_SPLITTER DEFINE_GUIDNAMED(CSCATEGORY_SPLITTER)
#define STATIC_CSCATEGORY_DATACOMPRESSOR \
0x1E84C900L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("1E84C900-7E70-11D0-A5D6-28DB04C10000", CSCATEGORY_DATACOMPRESSOR);
#define CSCATEGORY_DATACOMPRESSOR DEFINE_GUIDNAMED(CSCATEGORY_DATACOMPRESSOR)
#define STATIC_CSCATEGORY_DATADECOMPRESSOR \
0x2721AE20L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("2721AE20-7E70-11D0-A5D6-28DB04C10000", CSCATEGORY_DATADECOMPRESSOR);
#define CSCATEGORY_DATADECOMPRESSOR DEFINE_GUIDNAMED(CSCATEGORY_DATADECOMPRESSOR)
#define STATIC_CSCATEGORY_DATATRANSFORM \
0x2EB07EA0L, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("2EB07EA0-7E70-11D0-A5D6-28DB04C10000", CSCATEGORY_DATATRANSFORM);
#define CSCATEGORY_DATATRANSFORM DEFINE_GUIDNAMED(CSCATEGORY_DATATRANSFORM)
#define STATIC_CSCATEGORY_COMMUNICATIONSTRANSFORM \
0xCF1DDA2CL, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("CF1DDA2C-9743-11D0-A3EE-00A0C9223196", CSCATEGORY_COMMUNICATIONSTRANSFORM);
#define CSCATEGORY_COMMUNICATIONSTRANSFORM DEFINE_GUIDNAMED(CSCATEGORY_COMMUNICATIONSTRANSFORM)
#define STATIC_CSCATEGORY_INTERFACETRANSFORM \
0xCF1DDA2DL, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("CF1DDA2D-9743-11D0-A3EE-00A0C9223196", CSCATEGORY_INTERFACETRANSFORM);
#define CSCATEGORY_INTERFACETRANSFORM DEFINE_GUIDNAMED(CSCATEGORY_INTERFACETRANSFORM)
#define STATIC_CSCATEGORY_MEDIUMTRANSFORM \
0xCF1DDA2EL, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("CF1DDA2E-9743-11D0-A3EE-00A0C9223196", CSCATEGORY_MEDIUMTRANSFORM);
#define CSCATEGORY_MEDIUMTRANSFORM DEFINE_GUIDNAMED(CSCATEGORY_MEDIUMTRANSFORM)
#define STATIC_CSCATEGORY_FILESYSTEM \
0x760FED5EL, 0x9357, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("760FED5E-9357-11D0-A3CC-00A0C9223196", CSCATEGORY_FILESYSTEM);
#define CSCATEGORY_FILESYSTEM DEFINE_GUIDNAMED(CSCATEGORY_FILESYSTEM)
// CSNAME_Clock
#define STATIC_CSCATEGORY_CLOCK \
0x53172480L, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("53172480-4791-11D0-A5D6-28DB04C10000", CSCATEGORY_CLOCK);
#define CSCATEGORY_CLOCK DEFINE_GUIDNAMED(CSCATEGORY_CLOCK)
#define STATIC_CSCATEGORY_PROXY \
0x97EBAACAL, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("97EBAACA-95BD-11D0-A3EA-00A0C9223196", CSCATEGORY_PROXY);
#define CSCATEGORY_PROXY DEFINE_GUIDNAMED(CSCATEGORY_PROXY)
#define STATIC_CSCATEGORY_QUALITY \
0x97EBAACBL, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("97EBAACB-95BD-11D0-A3EA-00A0C9223196", CSCATEGORY_QUALITY);
#define CSCATEGORY_QUALITY DEFINE_GUIDNAMED(CSCATEGORY_QUALITY)
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} CSTOPOLOGY_CONNECTION, *PCSTOPOLOGY_CONNECTION;
typedef struct {
ULONG CategoriesCount;
const GUID* Categories;
ULONG TopologyNodesCount;
const GUID* TopologyNodes;
ULONG TopologyConnectionsCount;
const CSTOPOLOGY_CONNECTION* TopologyConnections;
const GUID* TopologyNodesNames;
ULONG Reserved;
} CSTOPOLOGY, *PCSTOPOLOGY;
#define CSFILTER_NODE ((ULONG)-1)
#define CSALL_NODES ((ULONG)-1)
typedef struct {
ULONG CreateFlags;
ULONG Node;
} CSNODE_CREATE, *PCSNODE_CREATE;
//===========================================================================
// TIME_FORMAT_NONE
#define STATIC_CSTIME_FORMAT_NONE STATIC_GUID_NULL
#define CSTIME_FORMAT_NONE GUID_NULL
// TIME_FORMAT_FRAME
#define STATIC_CSTIME_FORMAT_FRAME\
0x7b785570L, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6
DEFINE_GUIDSTRUCT("7b785570-8c82-11cf-bc0c-00aa00ac74f6", CSTIME_FORMAT_FRAME);
#define CSTIME_FORMAT_FRAME DEFINE_GUIDNAMED(CSTIME_FORMAT_FRAME)
// TIME_FORMAT_BYTE
#define STATIC_CSTIME_FORMAT_BYTE\
0x7b785571L, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6
DEFINE_GUIDSTRUCT("7b785571-8c82-11cf-bc0c-00aa00ac74f6", CSTIME_FORMAT_BYTE);
#define CSTIME_FORMAT_BYTE DEFINE_GUIDNAMED(CSTIME_FORMAT_BYTE)
// TIME_FORMAT_SAMPLE
#define STATIC_CSTIME_FORMAT_SAMPLE\
0x7b785572L, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6
DEFINE_GUIDSTRUCT("7b785572-8c82-11cf-bc0c-00aa00ac74f6", CSTIME_FORMAT_SAMPLE);
#define CSTIME_FORMAT_SAMPLE DEFINE_GUIDNAMED(CSTIME_FORMAT_SAMPLE)
// TIME_FORMAT_FIELD
#define STATIC_CSTIME_FORMAT_FIELD\
0x7b785573L, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6
DEFINE_GUIDSTRUCT("7b785573-8c82-11cf-bc0c-00aa00ac74f6", CSTIME_FORMAT_FIELD);
#define CSTIME_FORMAT_FIELD DEFINE_GUIDNAMED(CSTIME_FORMAT_FIELD)
// TIME_FORMAT_MEDIA_TIME
#define STATIC_CSTIME_FORMAT_MEDIA_TIME\
0x7b785574L, 0x8c82, 0x11cf, 0xbc, 0x0c, 0x00, 0xaa, 0x00, 0xac, 0x74, 0xf6
DEFINE_GUIDSTRUCT("7b785574-8c82-11cf-bc0c-00aa00ac74f6", CSTIME_FORMAT_MEDIA_TIME);
#define CSTIME_FORMAT_MEDIA_TIME DEFINE_GUIDNAMED(CSTIME_FORMAT_MEDIA_TIME)
//===========================================================================
typedef CSIDENTIFIER CSPIN_INTERFACE, *PCSPIN_INTERFACE;
#define STATIC_CSINTERFACESETID_Standard \
0x1A8766A0L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("1A8766A0-62CE-11CF-A5D6-28DB04C10000", CSINTERFACESETID_Standard);
#define CSINTERFACESETID_Standard DEFINE_GUIDNAMED(CSINTERFACESETID_Standard)
typedef enum {
CSINTERFACE_STANDARD_STREAMING,
CSINTERFACE_STANDARD_LOOPED_STREAMING,
CSINTERFACE_STANDARD_CONTROL
} CSINTERFACE_STANDARD;
#define STATIC_CSINTERFACESETID_FileIo \
0x8C6F932CL, 0xE771, 0x11D0, 0xB8, 0xFF, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96
DEFINE_GUIDSTRUCT("8C6F932C-E771-11D0-B8FF-00A0C9223196", CSINTERFACESETID_FileIo);
#define CSINTERFACESETID_FileIo DEFINE_GUIDNAMED(CSINTERFACESETID_FileIo)
typedef enum {
CSINTERFACE_FILEIO_STREAMING
} CSINTERFACE_FILEIO;
//===========================================================================
#define CSMEDIUM_TYPE_ANYINSTANCE 0
#define STATIC_CSMEDIUMSETID_Standard \
0x4747B320L, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("4747B320-62CE-11CF-A5D6-28DB04C10000", CSMEDIUMSETID_Standard);
#define CSMEDIUMSETID_Standard DEFINE_GUIDNAMED(CSMEDIUMSETID_Standard)
//For compatibility only
#define CSMEDIUM_STANDARD_DEVIO CSMEDIUM_TYPE_ANYINSTANCE
#endif //#ifndef UNDER_CE
//===========================================================================
#define STATIC_CSPROPSETID_Pin\
0x8C134960L, 0x51AD, 0x11CF, 0x87, 0x8A, 0x94, 0xF8, 0x01, 0xC1, 0x00, 0x00
DEFINE_GUIDSTRUCT("8C134960-51AD-11CF-878A-94F801C10000", CSPROPSETID_Pin);
#define CSPROPSETID_Pin DEFINE_GUIDNAMED(CSPROPSETID_Pin)
typedef enum {
CSPROPERTY_PIN_CINSTANCES=0,
CSPROPERTY_PIN_CTYPES,
#ifndef UNDER_CE
CSPROPERTY_PIN_DATAFLOW,
#endif //#ifndef UNDER_CE
CSPROPERTY_PIN_DATARANGES,
CSPROPERTY_PIN_DATAINTERSECTION,
#ifndef UNDER_CE
CSPROPERTY_PIN_INTERFACES,
CSPROPERTY_PIN_MEDIUMS,
CSPROPERTY_PIN_COMMUNICATION,
CSPROPERTY_PIN_GLOBALCINSTANCES,
CSPROPERTY_PIN_NECESSARYINSTANCES,
CSPROPERTY_PIN_PHYSICALCONNECTION,
#endif //#ifndef UNDER_CE
CSPROPERTY_PIN_CATEGORY,
CSPROPERTY_PIN_NAME,
#ifdef UNDER_CE
CSPROPERTY_PIN_DEVICENAME
#endif // UNDER_CE
#ifndef UNDER_CE
,
CSPROPERTY_PIN_CONSTRAINEDDATARANGES,
CSPROPERTY_PIN_PROPOSEDATAFORMAT
#endif //#ifndef UNDER_CE
} CSPROPERTY_PIN;
typedef struct {
CSPROPERTY Property;
ULONG PinId;
ULONG Reserved;
} CSP_PIN, *PCSP_PIN;
#define CSINSTANCE_INDETERMINATE ((ULONG)-1)
typedef struct {
ULONG PossibleCount;
ULONG CurrentCount;
} CSPIN_CINSTANCES, *PCSPIN_CINSTANCES;
#ifndef UNDER_CE
typedef enum {
CSPIN_DATAFLOW_IN = 1,
CSPIN_DATAFLOW_OUT
} CSPIN_DATAFLOW, *PCSPIN_DATAFLOW;
#endif //#ifndef UNDER_CE
#define CSDATAFORMAT_BIT_TEMPORAL_COMPRESSION 0
#define CSDATAFORMAT_TEMPORAL_COMPRESSION (1 << CSDATAFORMAT_BIT_TEMPORAL_COMPRESSION)
#define CSDATAFORMAT_BIT_ATTRIBUTES 1
#define CSDATAFORMAT_ATTRIBUTES (1 << CSDATAFORMAT_BIT_ATTRIBUTES)
#define CSDATARANGE_BIT_ATTRIBUTES 1
#define CSDATARANGE_ATTRIBUTES (1 << CSDATARANGE_BIT_ATTRIBUTES)
#define CSDATARANGE_BIT_REQUIRED_ATTRIBUTES 2
#define CSDATARANGE_REQUIRED_ATTRIBUTES (1 << CSDATARANGE_BIT_REQUIRED_ATTRIBUTES)
#if !defined( _MSC_VER )
typedef struct {
ULONG FormatSize;
ULONG Flags;
ULONG SampleSize;
ULONG Reserved;
GUID MajorFormat;
GUID SubFormat;
GUID Specifier;
} CSDATAFORMAT, *PCSDATAFORMAT, CSDATARANGE, *PCSDATARANGE;
#else
typedef union {
struct {
ULONG FormatSize;
ULONG Flags;
ULONG SampleSize;
ULONG Reserved;
GUID MajorFormat;
GUID SubFormat;
GUID Specifier;
};
LONGLONG Alignment;
} CSDATAFORMAT, *PCSDATAFORMAT, CSDATARANGE, *PCSDATARANGE;
#endif
#define CSATTRIBUTE_REQUIRED 0x00000001
#ifndef UNDER_CE
typedef struct {
ULONG Size;
ULONG Flags;
GUID Attribute;
} CSATTRIBUTE, *PCSATTRIBUTE;
typedef enum {
CSPIN_COMMUNICATION_NONE,
CSPIN_COMMUNICATION_SINK,
CSPIN_COMMUNICATION_SOURCE,
CSPIN_COMMUNICATION_BOTH,
CSPIN_COMMUNICATION_BRIDGE
} CSPIN_COMMUNICATION, *PCSPIN_COMMUNICATION;
typedef CSIDENTIFIER CSPIN_MEDIUM, *PCSPIN_MEDIUM;
typedef struct {
CSPIN_INTERFACE Interface;
CSPIN_MEDIUM Medium;
ULONG PinId;
HANDLE PinToHandle;
CSPRIORITY Priority;
} CSPIN_CONNECT, *PCSPIN_CONNECT;
typedef struct {
ULONG Size;
ULONG Pin;
WCHAR SymbolicLinkName[1];
} CSPIN_PHYSICALCONNECTION, *PCSPIN_PHYSICALCONNECTION;
#if defined(_NTDDK_)
typedef
NTSTATUS
(*PFNCSINTERSECTHANDLER)(
IN PIRP Irp,
IN PCSP_PIN Pin,
IN PCSDATARANGE DataRange,
OUT PVOID Data OPTIONAL
);
typedef
NTSTATUS
(*PFNCSINTERSECTHANDLEREX)(
IN PVOID Context,
IN PIRP Irp,
IN PCSP_PIN Pin,
IN PCSDATARANGE DataRange,
IN PCSDATARANGE MatchingDataRange,
IN ULONG DataBufferSize,
OUT PVOID Data OPTIONAL,
OUT PULONG DataSize
);
#endif // _NTDDK_
#define DEFINE_CSPIN_INTERFACE_TABLE(tablename)\
const CSPIN_INTERFACE tablename[] =
#define DEFINE_CSPIN_INTERFACE_ITEM(guid, interface)\
{\
STATICGUIDOF(guid),\
(interface),\
0\
}
#endif //#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_CINSTANCES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_CINSTANCES,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(CSPIN_CINSTANCES),\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_CTYPES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_CTYPES,\
(Handler),\
sizeof(CSPROPERTY),\
sizeof(ULONG),\
NULL, NULL, 0, NULL, NULL, 0)
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_DATAFLOW(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_DATAFLOW,\
(Handler),\
sizeof(CSP_PIN),\
sizeof(CSPIN_DATAFLOW),\
NULL, NULL, 0, NULL, NULL, 0)
#endif //#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_DATARANGES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_DATARANGES,\
(Handler),\
sizeof(CSP_PIN),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_DATAINTERSECTION(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_DATAINTERSECTION,\
(Handler),\
sizeof(CSP_PIN) + sizeof(CSMULTIPLE_ITEM),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#ifndef UNDER_CE
#define DEFINE_CSPROPERTY_ITEM_PIN_INTERFACES(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_INTERFACES,\
(Handler),\
sizeof(CSP_PIN),\
0,\
NULL, NULL, 0, NULL, NULL, 0)
#define DEFINE_CSPROPERTY_ITEM_PIN_MEDIUMS(Handler)\
DEFINE_CSPROPERTY_ITEM(\
CSPROPERTY_PIN_MEDIUMS,\
(Handler),\
sizeof(CSP_PIN),\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -