- Add few macros, constants for splitter

svn path=/trunk/; revision=42619
This commit is contained in:
Johannes Anderwald 2009-08-11 14:52:22 +00:00
parent d2c4562d5b
commit 4e8ace35ed
2 changed files with 93 additions and 23 deletions

View file

@ -90,11 +90,21 @@ typedef PVOID PKSWORKER;
#define STATIC_GUID_NULL \
0x00000000L, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
0x00000000L, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
DEFINE_GUIDSTRUCT("00000000-0000-0000-0000-000000000000", GUID_NULL);
#define GUID_NULL DEFINE_GUIDNAMED(GUID_NULL)
#define STATIC_KSNAME_Filter\
0x9b365890L, 0x165f, 0x11d0, {0xa1, 0x95, 0x00, 0x20, 0xaf, 0xd1, 0x56, 0xe4}
DEFINE_GUIDSTRUCT("9b365890-165f-11d0-a195-0020afd156e4", KSNAME_Filter);
#define KSNAME_Filter DEFINE_GUIDNAMED(KSNAME_Filter)
#define STATIC_KSMEMORY_TYPE_KERNEL_PAGED \
0xd833f8f8L, 0x7894, 0x11d1, {0xb0, 0x69, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
DEFINE_GUIDSTRUCT("d833f8f8-7894-11d1-b069-00a0c9062802", KSMEMORY_TYPE_KERNEL_PAGED);
#define KSMEMORY_TYPE_KERNEL_PAGED DEFINE_GUIDNAMED(KSMEMORY_TYPE_KERNEL_PAGED)
/* ===============================================================
I/O Control Codes
*/
@ -2169,28 +2179,40 @@ typedef struct
PFNKSINTERSECTHANDLEREX IntersectHandler;
} KSPIN_DESCRIPTOR_EX, *PKSPIN_DESCRIPTOR_EX;
/* TODO */
#define KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING
#define KSPIN_FLAG_CRITICAL_PROCESSING
#define KSPIN_FLAG_HYPERCRITICAL_PROCESSING
#define KSPIN_FLAG_ASYNCHRONOUS_PROCESSING
#define KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING
#define KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL
#define KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING
#define KSPIN_FLAG_ENFORCE_FIFO
#define KSPIN_FLAG_GENERATE_MAPPINGS
#define KSPIN_FLAG_DISTINCT_TRAILING_EDGE
#define KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY
#define KSPIN_FLAG_SPLITTER
#define KSPIN_FLAG_USE_STANDARD_TRANSPORT
#define KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT
#define KSPIN_FLAG_FIXED_FORMAT
#define KSPIN_FLAG_GENERATE_EOS_EVENTS
#define KSPIN_FLAG_RENDERER
#define KSPIN_FLAG_SOME_FRAMES_REQUIRED_FOR_PROCESSING
#define KSPIN_FLAG_PROCESS_IF_ANY_IN_RUN_STATE
#define KSPIN_FLAG_DENY_USERMODE_ACCESS
#define KSPIN_FLAG_IMPLEMENT_CLOCK
#define KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING 0x00000001
#define KSFILTER_FLAG_CRITICAL_PROCESSING 0x00000002
#define KSFILTER_FLAG_HYPERCRITICAL_PROCESSING 0x00000004
#define KSFILTER_FLAG_RECEIVE_ZERO_LENGTH_SAMPLES 0x00000008
#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
#define KSFILTER_FLAG_DENY_USERMODE_ACCESS 0x80000000
#endif
#define KSPIN_FLAG_DISPATCH_LEVEL_PROCESSING KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING
#define KSPIN_FLAG_CRITICAL_PROCESSING KSFILTER_FLAG_CRITICAL_PROCESSING
#define KSPIN_FLAG_HYPERCRITICAL_PROCESSING KSFILTER_FLAG_HYPERCRITICAL_PROCESSING
#define KSPIN_FLAG_ASYNCHRONOUS_PROCESSING 0x00000008
#define KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING 0x00000010
#define KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL 0x00000020
#define KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING 0x00000040
#define KSPIN_FLAG_ENFORCE_FIFO 0x00000080
#define KSPIN_FLAG_GENERATE_MAPPINGS 0x00000100
#define KSPIN_FLAG_DISTINCT_TRAILING_EDGE 0x00000200
#define KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY 0x00010000
#define KSPIN_FLAG_SPLITTER 0x00020000
#define KSPIN_FLAG_USE_STANDARD_TRANSPORT 0x00040000
#define KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT 0x00080000
#define KSPIN_FLAG_FIXED_FORMAT 0x00100000
#define KSPIN_FLAG_GENERATE_EOS_EVENTS 0x00200000
#define KSPIN_FLAG_RENDERER (KSPIN_FLAG_PROCESS_IN_RUN_STATE_ONLY|KSPIN_FLAG_GENERATE_EOS_EVENTS)
#define KSPIN_FLAG_IMPLEMENT_CLOCK 0x00400000
#define KSPIN_FLAG_SOME_FRAMES_REQUIRED_FOR_PROCESSING 0x00800000
#define KSPIN_FLAG_PROCESS_IF_ANY_IN_RUN_STATE 0x01000000
#if (NTDDI_VERSION >= NTDDI_WINXPSP2)
#define KSPIN_FLAG_DENY_USERMODE_ACCESS 0x80000000
#endif
struct _KSPIN
{
@ -2757,6 +2779,8 @@ struct _KSFILTER_DESCRIPTOR
const KSCOMPONENTID* ComponentId;
};
#define KSFILTER_DESCRIPTOR_VERSION ((ULONG)-1)
struct _KSDEVICE_DESCRIPTOR
{
const KSDEVICE_DISPATCH* Dispatch;
@ -2772,6 +2796,44 @@ struct _KSFILTERFACTORY {
PVOID Context;
};
#define DEFINE_KSFILTER_DESCRIPTOR(descriptor)\
const KSFILTER_DESCRIPTOR descriptor =
#define DEFINE_KSFILTER_PIN_DESCRIPTORS(table)\
SIZEOF_ARRAY(table),\
sizeof(table[0]),\
table
#define DEFINE_KSFILTER_CATEGORIES(table)\
SIZEOF_ARRAY(table),\
table
#define DEFINE_KSFILTER_CATEGORY(category)\
1,\
&(category)
#define DEFINE_KSFILTER_CATEGORIES_NULL\
0,\
NULL
#define DEFINE_KSFILTER_NODE_DESCRIPTORS(table)\
SIZEOF_ARRAY(table),\
sizeof(table[0]),\
table
#define DEFINE_KSFILTER_NODE_DESCRIPTORS_NULL\
0,\
sizeof(KSNODE_DESCRIPTOR),\
NULL
#define DEFINE_KSFILTER_CONNECTIONS(table)\
SIZEOF_ARRAY(table),\
table
#define DEFINE_KSFILTER_DEFAULT_CONNECTIONS\
0,\
NULL
#endif
/* ===============================================================
Minidriver Callbacks

View file

@ -24,6 +24,14 @@
DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788", KSCATEGORY_AUDIO_DEVICE);
#define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
/* video */
#define STATIC_PINNAME_VIDEO_CAPTURE \
0xfb6c4281, 0x353, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
#define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA", PINNAME_VIDEO_CAPTURE);
#define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
#define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
/* Preferred devices */
#define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \