| ks.h (6.3.9600.17415-Windows 8.1) | | ks.h (10.0.10586.0-Windows 10 1511 10586.494) |
| | |
| skipping to change at line 775 | | skipping to change at line 773 |
| #define STATIC_KSCATEGORY_CAPTURE \ | | #define STATIC_KSCATEGORY_CAPTURE \ |
| 0x65E8773DL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 | | 0x65E8773DL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 |
| DEFINE_GUIDSTRUCT("65E8773D-8F56-11D0-A3B9-00A0C9223196", KSCATEGORY_CAPTURE); | | DEFINE_GUIDSTRUCT("65E8773D-8F56-11D0-A3B9-00A0C9223196", KSCATEGORY_CAPTURE); |
| #define KSCATEGORY_CAPTURE DEFINE_GUIDNAMED(KSCATEGORY_CAPTURE) | | #define KSCATEGORY_CAPTURE DEFINE_GUIDNAMED(KSCATEGORY_CAPTURE) |
| | |
| #define STATIC_KSCATEGORY_VIDEO_CAMERA \ | | #define STATIC_KSCATEGORY_VIDEO_CAMERA \ |
| 0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44 | | 0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44 |
| DEFINE_GUIDSTRUCT("E5323777-F976-4f5b-9B55-B94699C46E44", KSCATEGORY_VIDEO_CAMER
A); | | DEFINE_GUIDSTRUCT("E5323777-F976-4f5b-9B55-B94699C46E44", KSCATEGORY_VIDEO_CAMER
A); |
| #define KSCATEGORY_VIDEO_CAMERA DEFINE_GUIDNAMED(KSCATEGORY_VIDEO_CAMERA) | | #define KSCATEGORY_VIDEO_CAMERA DEFINE_GUIDNAMED(KSCATEGORY_VIDEO_CAMERA) |
| | |
|
| | #define STATIC_KSCATEGORY_SENSOR_CAMERA \ |
| | 0x24e552d7, 0x6523, 0x47f7, 0xa6, 0x47, 0xd3, 0x46, 0x5b, 0xf1, 0xf5, 0xca |
| | DEFINE_GUIDSTRUCT("24E552D7-6523-47F7-A647-D3465BF1F5CA", KSCATEGORY_SENSOR_CAME |
| | RA); |
| | #define KSCATEGORY_SENSOR_CAMERA DEFINE_GUIDNAMED(KSCATEGORY_SENSOR_CAMERA) |
| | |
| #define STATIC_KSCATEGORY_RENDER \ | | #define STATIC_KSCATEGORY_RENDER \ |
| 0x65E8773EL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 | | 0x65E8773EL, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96 |
| DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196", KSCATEGORY_RENDER); | | DEFINE_GUIDSTRUCT("65E8773E-8F56-11D0-A3B9-00A0C9223196", KSCATEGORY_RENDER); |
| #define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER) | | #define KSCATEGORY_RENDER DEFINE_GUIDNAMED(KSCATEGORY_RENDER) |
| | |
| #define STATIC_KSCATEGORY_MIXER \ | | #define STATIC_KSCATEGORY_MIXER \ |
| 0xAD809C00L, 0x7B88, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 | | 0xAD809C00L, 0x7B88, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 |
| DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000", KSCATEGORY_MIXER); | | DEFINE_GUIDSTRUCT("AD809C00-7B88-11D0-A5D6-28DB04C10000", KSCATEGORY_MIXER); |
| #define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER) | | #define KSCATEGORY_MIXER DEFINE_GUIDNAMED(KSCATEGORY_MIXER) |
| | |
| | |
| skipping to change at line 1631 | | skipping to change at line 1634 |
| #define KSALLOCATOR_OPTIONF_COMPATIBLE 0x00000001 | | #define KSALLOCATOR_OPTIONF_COMPATIBLE 0x00000001 |
| #define KSALLOCATOR_OPTIONF_SYSTEM_MEMORY 0x00000002 | | #define KSALLOCATOR_OPTIONF_SYSTEM_MEMORY 0x00000002 |
| #define KSALLOCATOR_OPTIONF_VALID 0x00000003 | | #define KSALLOCATOR_OPTIONF_VALID 0x00000003 |
| // | | // |
| // pins extended framing flags | | // pins extended framing flags |
| // | | // |
| #define KSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT 0x00000010 | | #define KSALLOCATOR_FLAG_PARTIAL_READ_SUPPORT 0x00000010 |
| #define KSALLOCATOR_FLAG_DEVICE_SPECIFIC 0x00000020 | | #define KSALLOCATOR_FLAG_DEVICE_SPECIFIC 0x00000020 |
| #define KSALLOCATOR_FLAG_CAN_ALLOCATE 0x00000040 | | #define KSALLOCATOR_FLAG_CAN_ALLOCATE 0x00000040 |
| #define KSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO 0x00000080 | | #define KSALLOCATOR_FLAG_INSIST_ON_FRAMESIZE_RATIO 0x00000080 |
|
| | #define KSALLOCATOR_FLAG_ENABLE_CACHED_MDL 0x00004000 |
| | |
| // | | // |
| // allocator pipes flags | | // allocator pipes flags |
| // | | // |
| // there is at least one data modification in a pipe | | // there is at least one data modification in a pipe |
| #define KSALLOCATOR_FLAG_NO_FRAME_INTEGRITY 0x00000100 | | #define KSALLOCATOR_FLAG_NO_FRAME_INTEGRITY 0x00000100 |
| #define KSALLOCATOR_FLAG_MULTIPLE_OUTPUT 0x00000200 | | #define KSALLOCATOR_FLAG_MULTIPLE_OUTPUT 0x00000200 |
| #define KSALLOCATOR_FLAG_CYCLE 0x00000400 | | #define KSALLOCATOR_FLAG_CYCLE 0x00000400 |
| #define KSALLOCATOR_FLAG_ALLOCATOR_EXISTS 0x00000800 | | #define KSALLOCATOR_FLAG_ALLOCATOR_EXISTS 0x00000800 |
| // there is no framing dependency between neighbouring pipes. | | // there is no framing dependency between neighbouring pipes. |
| #define KSALLOCATOR_FLAG_INDEPENDENT_RANGES 0x00001000 | | #define KSALLOCATOR_FLAG_INDEPENDENT_RANGES 0x00001000 |
| | |
| skipping to change at line 1989 | | skipping to change at line 1994 |
| #define KSSTREAM_HEADER_OPTIONSF_PREROLL 0x00000002 | | #define KSSTREAM_HEADER_OPTIONSF_PREROLL 0x00000002 |
| #define KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY 0x00000004 | | #define KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY 0x00000004 |
| #define KSSTREAM_HEADER_OPTIONSF_TYPECHANGED 0x00000008 | | #define KSSTREAM_HEADER_OPTIONSF_TYPECHANGED 0x00000008 |
| #define KSSTREAM_HEADER_OPTIONSF_TIMEVALID 0x00000010 | | #define KSSTREAM_HEADER_OPTIONSF_TIMEVALID 0x00000010 |
| #define KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY 0x00000040 | | #define KSSTREAM_HEADER_OPTIONSF_TIMEDISCONTINUITY 0x00000040 |
| #define KSSTREAM_HEADER_OPTIONSF_FLUSHONPAUSE 0x00000080 | | #define KSSTREAM_HEADER_OPTIONSF_FLUSHONPAUSE 0x00000080 |
| #define KSSTREAM_HEADER_OPTIONSF_DURATIONVALID 0x00000100 | | #define KSSTREAM_HEADER_OPTIONSF_DURATIONVALID 0x00000100 |
| #define KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 0x00000200 | | #define KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM 0x00000200 |
| #define KSSTREAM_HEADER_OPTIONSF_BUFFEREDTRANSFER 0x00000400 | | #define KSSTREAM_HEADER_OPTIONSF_BUFFEREDTRANSFER 0x00000400 |
| #define KSSTREAM_HEADER_OPTIONSF_VRAM_DATA_TRANSFER 0x00000800 | | #define KSSTREAM_HEADER_OPTIONSF_VRAM_DATA_TRANSFER 0x00000800 |
|
| | #define KSSTREAM_HEADER_OPTIONSF_METADATA 0x00001000 |
| | #define KSSTREAM_HEADER_OPTIONSF_ENDOFPHOTOSEQUENCE 0x00002000 |
| | #define KSSTREAM_HEADER_OPTIONSF_FRAMEINFO 0x00004000 |
| | // |
| | //Start of MDL caching related definitions |
| | // |
| | #define KSSTREAM_HEADER_OPTIONSF_PERSIST_SAMPLE 0x00008000 |
| | #define KSSTREAM_HEADER_OPTIONSF_SAMPLE_PERSISTED 0x00010000 |
| | |
| | // |
| | // This flag tells the user mode to look at frame completion numbers |
| | // |
| | #define KSSTREAM_HEADER_TRACK_COMPLETION_NUMBERS 0x00020000 |
| | |
| | // |
| | //End of MDL caching related definitions |
| #define KSSTREAM_HEADER_OPTIONSF_LOOPEDDATA 0x80000000 | | #define KSSTREAM_HEADER_OPTIONSF_LOOPEDDATA 0x80000000 |
| | |
| typedef struct { | | typedef struct { |
| LONGLONG Time; | | LONGLONG Time; |
| ULONG Numerator; | | ULONG Numerator; |
| ULONG Denominator; | | ULONG Denominator; |
| } KSTIME, *PKSTIME; | | } KSTIME, *PKSTIME; |
| | |
| typedef struct { | | typedef struct { |
| ULONG Size; | | ULONG Size; |
| | |
| skipping to change at line 2012 | | skipping to change at line 2033 |
| ULONG FrameExtent; | | ULONG FrameExtent; |
| ULONG DataUsed; | | ULONG DataUsed; |
| _Field_size_bytes_(FrameExtent) | | _Field_size_bytes_(FrameExtent) |
| PVOID Data; | | PVOID Data; |
| ULONG OptionsFlags; | | ULONG OptionsFlags; |
| #if _WIN64 | | #if _WIN64 |
| ULONG Reserved; | | ULONG Reserved; |
| #endif | | #endif |
| } KSSTREAM_HEADER, *PKSSTREAM_HEADER; | | } KSSTREAM_HEADER, *PKSSTREAM_HEADER; |
| | |
|
| | typedef struct { |
| | ULONG BufferSize; |
| | ULONG UsedSize; |
| | _Field_size_bytes_(BufferSize) |
| | PVOID Data; // Metadata buffer passed down by user mode (mapped to |
| | SystemVa) |
| | _Field_size_bytes_(BufferSize) |
| | PVOID SystemVa; // Metadata buffer that driver will fill metadata to |
| | ULONG Flags; |
| | ULONG Reserved; |
| | } KSSTREAM_METADATA_INFO, *PKSSTREAM_METADATA_INFO; |
| | |
| | typedef struct |
| | { |
| | ULONG PresentationTimeStamp; |
| | ULONG SourceClockReference; |
| | union |
| | { |
| | struct |
| | { |
| | USHORT Counter : 11; |
| | USHORT Reserved : 5; |
| | }; |
| | USHORT SCRToken; |
| | }; |
| | USHORT Reserved0; |
| | ULONG Reserved1; |
| | } KSSTREAM_UVC_METADATATYPE_TIMESTAMP, *PKSSTREAM_UVC_METADATATYPE_TIMESTAMP; |
| | |
| | typedef struct { |
| | KSSTREAM_UVC_METADATATYPE_TIMESTAMP StartOfFrameTimestamp; |
| | KSSTREAM_UVC_METADATATYPE_TIMESTAMP EndOfFrameTimestamp; |
| | } KSSTREAM_UVC_METADATA, *PKSSTREAM_UVC_METADATA; |
| | |
| | typedef enum{ |
| | KSPIN_MDL_CACHING_NOTIFY_CLEANUP, |
| | KSPIN_MDL_CACHING_NOTIFY_CLEANALL_WAIT, |
| | KSPIN_MDL_CACHING_NOTIFY_CLEANALL_NOWAIT, |
| | KSPIN_MDL_CACHING_NOTIFY_ADDSAMPLE |
| | }KSPIN_MDL_CACHING_EVENT; |
| | |
| | typedef struct { |
| | KSPIN_MDL_CACHING_EVENT Event; |
| | PVOID Buffer; |
| | } KSPIN_MDL_CACHING_NOTIFICATION, *PKSPIN_MDL_CACHING_NOTIFICATION; |
| | |
| | typedef struct { |
| | KSPIN_MDL_CACHING_EVENT Event; |
| | ULONG Buffer; |
| | } KSPIN_MDL_CACHING_NOTIFICATION32, *PKSPIN_MDL_CACHING_NOTIFICATION32; |
| | |
| #define STATIC_KSPROPSETID_StreamInterface\ | | #define STATIC_KSPROPSETID_StreamInterface\ |
| 0x1fdd8ee1L, 0x9cd3, 0x11d0, 0x82, 0xaa, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a | | 0x1fdd8ee1L, 0x9cd3, 0x11d0, 0x82, 0xaa, 0x00, 0x00, 0xf8, 0x22, 0xfe, 0x8a |
| DEFINE_GUIDSTRUCT("1fdd8ee1-9cd3-11d0-82aa-0000f822fe8a", KSPROPSETID_StreamInte
rface); | | DEFINE_GUIDSTRUCT("1fdd8ee1-9cd3-11d0-82aa-0000f822fe8a", KSPROPSETID_StreamInte
rface); |
| #define KSPROPSETID_StreamInterface DEFINE_GUIDNAMED(KSPROPSETID_StreamInterface
) | | #define KSPROPSETID_StreamInterface DEFINE_GUIDNAMED(KSPROPSETID_StreamInterface
) |
| | |
| typedef enum { | | typedef enum { |
| KSPROPERTY_STREAMINTERFACE_HEADERSIZE | | KSPROPERTY_STREAMINTERFACE_HEADERSIZE |
| } KSPROPERTY_STREAMINTERFACE; | | } KSPROPERTY_STREAMINTERFACE; |
| | |
| #define DEFINE_KSPROPERTY_ITEM_STREAMINTERFACE_HEADERSIZE( GetHandler )\ | | #define DEFINE_KSPROPERTY_ITEM_STREAMINTERFACE_HEADERSIZE( GetHandler )\ |
| | |
| skipping to change at line 2148 | | skipping to change at line 2219 |
| | |
| #define DEFINE_KSPROPERTY_ITEM_STREAM_PIPE_ID(GetHandler, SetHandler)\ | | #define DEFINE_KSPROPERTY_ITEM_STREAM_PIPE_ID(GetHandler, SetHandler)\ |
| DEFINE_KSPROPERTY_ITEM(\ | | DEFINE_KSPROPERTY_ITEM(\ |
| KSPROPERTY_STREAM_PIPE_ID,\ | | KSPROPERTY_STREAM_PIPE_ID,\ |
| (GetHandler),\ | | (GetHandler),\ |
| sizeof(KSPROPERTY),\ | | sizeof(KSPROPERTY),\ |
| sizeof(HANDLE),\ | | sizeof(HANDLE),\ |
| (SetHandler),\ | | (SetHandler),\ |
| NULL, 0, NULL, NULL, 0) | | NULL, 0, NULL, NULL, 0) |
| | |
|
| | typedef enum{ |
| | KSPROPERTY_ALLOCATOR_CLEANUP_CACHEDMDLPAGES = 1 |
| | }KSPPROPERTY_ALLOCATOR_MDLCACHING; |
| | |
| | #define DEFINE_KSPROPERTY_ITEM_CONNECTION_MDLCACHING(SetHandler)\ |
| | DEFINE_KSPROPERTY_ITEM(\ |
| | KSPROPERTY_ALLOCATOR_CLEANUP_CACHEDMDLPAGES,\ |
| | NULL,\ |
| | sizeof(KSPROPERTY),\ |
| | sizeof(KSPIN_MDL_CACHING_NOTIFICATION),\ |
| | (SetHandler),\ |
| | NULL, 0, NULL, NULL, 0) |
| | |
| | #define STATIC_KSPROPSETID_PinMDLCacheClearProp \ |
| | 0xbd718a7b, 0x97fc, 0x40c7, 0x88, 0xce, 0xd3, 0xff, 0x6, 0xf5, 0x5b, 0x16 |
| | DEFINE_GUIDSTRUCT("BD718A7B-97FC-40C7-88CE-D3FF06F55B16", KSPROPSETID_PinMDLCach |
| | eClearProp); |
| | #define KSPROPSETID_PinMDLCacheClearProp DEFINE_GUIDNAMED(KSPROPSETID_PinMDLCach |
| | eClearProp) |
| | |
| typedef struct { | | typedef struct { |
| HANDLE QualityManager; | | HANDLE QualityManager; |
| PVOID Context; | | PVOID Context; |
| } KSQUALITY_MANAGER, *PKSQUALITY_MANAGER; | | } KSQUALITY_MANAGER, *PKSQUALITY_MANAGER; |
| | |
| typedef struct { | | typedef struct { |
| LONGLONG Duration; | | LONGLONG Duration; |
| ULONG FrameFlags; | | ULONG FrameFlags; |
| ULONG Reserved; | | ULONG Reserved; |
| } KSFRAMETIME, *PKSFRAMETIME; | | } KSFRAMETIME, *PKSFRAMETIME; |
| | |
| skipping to change at line 2379 | | skipping to change at line 2468 |
| PVOID Context; | | PVOID Context; |
| ULONG Proportion; | | ULONG Proportion; |
| LONGLONG DeltaTime; | | LONGLONG DeltaTime; |
| } KSQUALITY, *PKSQUALITY; | | } KSQUALITY, *PKSQUALITY; |
| | |
| typedef struct { | | typedef struct { |
| PVOID Context; | | PVOID Context; |
| ULONG Status; | | ULONG Status; |
| } KSERROR, *PKSERROR; | | } KSERROR, *PKSERROR; |
| | |
|
| | typedef enum { |
| | KSDEVICE_THERMAL_STATE_LOW, |
| | KSDEVICE_THERMAL_STATE_HIGH |
| | } KSDEVICE_THERMAL_STATE; |
| | |
| #define STATIC_KSEVENTSETID_Device\ | | #define STATIC_KSEVENTSETID_Device\ |
| 0x288296ec, 0x9f94, 0x41b4, 0xa1, 0x53, 0xaa, 0x31, 0xae, 0xec, 0xb3, 0x3f | | 0x288296ec, 0x9f94, 0x41b4, 0xa1, 0x53, 0xaa, 0x31, 0xae, 0xec, 0xb3, 0x3f |
| DEFINE_GUIDSTRUCT("288296EC-9F94-41b4-A153-AA31AEECB33F", KSEVENTSETID_Device); | | DEFINE_GUIDSTRUCT("288296EC-9F94-41b4-A153-AA31AEECB33F", KSEVENTSETID_Device); |
| #define KSEVENTSETID_Device DEFINE_GUIDNAMED(KSEVENTSETID_Device) | | #define KSEVENTSETID_Device DEFINE_GUIDNAMED(KSEVENTSETID_Device) |
| | |
| typedef enum { | | typedef enum { |
| KSEVENT_DEVICE_LOST, | | KSEVENT_DEVICE_LOST, |
|
| KSEVENT_DEVICE_PREEMPTED | | KSEVENT_DEVICE_PREEMPTED, |
| | KSEVENT_DEVICE_THERMAL_HIGH, |
| | KSEVENT_DEVICE_THERMAL_LOW |
| } KSEVENT_DEVICE; | | } KSEVENT_DEVICE; |
| | |
| typedef KSIDENTIFIER KSDEGRADE, *PKSDEGRADE; | | typedef KSIDENTIFIER KSDEGRADE, *PKSDEGRADE; |
| | |
| #define STATIC_KSDEGRADESETID_Standard\ | | #define STATIC_KSDEGRADESETID_Standard\ |
| 0x9F564180L, 0x704C, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 | | 0x9F564180L, 0x704C, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00 |
| DEFINE_GUIDSTRUCT("9F564180-704C-11D0-A5D6-28DB04C10000", KSDEGRADESETID_Standar
d); | | DEFINE_GUIDSTRUCT("9F564180-704C-11D0-A5D6-28DB04C10000", KSDEGRADESETID_Standar
d); |
| #define KSDEGRADESETID_Standard DEFINE_GUIDNAMED(KSDEGRADESETID_Standard) | | #define KSDEGRADESETID_Standard DEFINE_GUIDNAMED(KSDEGRADESETID_Standard) |
| | |
| typedef enum { | | typedef enum { |
| | |
| skipping to change at line 3461 | | skipping to change at line 3557 |
| | |
| struct _KSDEVICE_DESCRIPTOR { | | struct _KSDEVICE_DESCRIPTOR { |
| const KSDEVICE_DISPATCH* Dispatch; | | const KSDEVICE_DISPATCH* Dispatch; |
| ULONG FilterDescriptorsCount; | | ULONG FilterDescriptorsCount; |
| _Field_size_(FilterDescriptorsCount) const KSFILTER_DESCRIPTOR*const* Filter
Descriptors; | | _Field_size_(FilterDescriptorsCount) const KSFILTER_DESCRIPTOR*const* Filter
Descriptors; |
| ULONG Version; // this is 0 for pre-version 100 driver | | ULONG Version; // this is 0 for pre-version 100 driver |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| ULONG Flags; | | ULONG Flags; |
|
| #define KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP 0x00000001 | | #define KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP 0x00000001 |
| #define KSDEVICE_FLAG_LOWPOWER_PASSTHROUGH 0x00000002 | | #define KSDEVICE_FLAG_LOWPOWER_PASSTHROUGH 0x00000002 |
| | |
| | #if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) |
| | #define KSDEVICE_FLAG_ENABLE_QUERYINTERFACE 0x00000004 |
| | #endif |
| | |
| #if !defined(_WIN64) | | #if !defined(_WIN64) |
| PVOID Alignment; | | PVOID Alignment; |
| #endif //!defined(_WIN64) | | #endif //!defined(_WIN64) |
| | |
| #endif // (NTDDI_VERSION >= NTDDI_VISTA) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| }; | | }; |
| | |
| struct _KSFILTER_DESCRIPTOR { | | struct _KSFILTER_DESCRIPTOR { |
| | |
| skipping to change at line 3485 | | skipping to change at line 3585 |
| ULONG Version; | | ULONG Version; |
| #define KSFILTER_DESCRIPTOR_VERSION ((ULONG)-1) | | #define KSFILTER_DESCRIPTOR_VERSION ((ULONG)-1) |
| ULONG Flags; | | ULONG Flags; |
| #define KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING 0x00000001 | | #define KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING 0x00000001 |
| #define KSFILTER_FLAG_CRITICAL_PROCESSING 0x00000002 | | #define KSFILTER_FLAG_CRITICAL_PROCESSING 0x00000002 |
| #define KSFILTER_FLAG_HYPERCRITICAL_PROCESSING 0x00000004 | | #define KSFILTER_FLAG_HYPERCRITICAL_PROCESSING 0x00000004 |
| #define KSFILTER_FLAG_RECEIVE_ZERO_LENGTH_SAMPLES 0x00000008 | | #define KSFILTER_FLAG_RECEIVE_ZERO_LENGTH_SAMPLES 0x00000008 |
| #if (NTDDI_VERSION >= NTDDI_WINXPSP2) | | #if (NTDDI_VERSION >= NTDDI_WINXPSP2) |
| #define KSFILTER_FLAG_DENY_USERMODE_ACCESS 0x80000000 | | #define KSFILTER_FLAG_DENY_USERMODE_ACCESS 0x80000000 |
| #endif // (NTDDI_VERSION >= NTDDI_WINXPSP2) | | #endif // (NTDDI_VERSION >= NTDDI_WINXPSP2) |
|
| | // This flag is added to prioritize the ReferenceGUID when creating |
| | // filter factory over the reference string. All devices that publish |
| | // camera profiles must set this flag. |
| | #define KSFILTER_FLAG_PRIORITIZE_REFERENCEGUID 0x00000010 |
| const GUID* ReferenceGuid; | | const GUID* ReferenceGuid; |
| ULONG PinDescriptorsCount; | | ULONG PinDescriptorsCount; |
| ULONG PinDescriptorSize; | | ULONG PinDescriptorSize; |
| _Field_size_bytes_(PinDescriptorsCount * PinDescriptorSize) const KSPIN_DESC
RIPTOR_EX* PinDescriptors; | | _Field_size_bytes_(PinDescriptorsCount * PinDescriptorSize) const KSPIN_DESC
RIPTOR_EX* PinDescriptors; |
| ULONG CategoriesCount; | | ULONG CategoriesCount; |
| _Field_size_(CategoriesCount) | | _Field_size_(CategoriesCount) |
| const GUID* Categories; | | const GUID* Categories; |
| ULONG NodeDescriptorsCount; | | ULONG NodeDescriptorsCount; |
| ULONG NodeDescriptorSize; | | ULONG NodeDescriptorSize; |
| _Field_size_bytes_(NodeDescriptorsCount * NodeDescriptorSize) const KSNODE_D
ESCRIPTOR* NodeDescriptors; | | _Field_size_bytes_(NodeDescriptorsCount * NodeDescriptorSize) const KSNODE_D
ESCRIPTOR* NodeDescriptors; |
| | |
| skipping to change at line 3960 | | skipping to change at line 4064 |
| VOID | | VOID |
| NTAPI | | NTAPI |
| KsGenerateEventList( | | KsGenerateEventList( |
| _In_opt_ GUID* Set, | | _In_opt_ GUID* Set, |
| _In_ ULONG EventId, | | _In_ ULONG EventId, |
| _In_ PLIST_ENTRY EventsList, | | _In_ PLIST_ENTRY EventsList, |
| _In_ KSEVENTS_LOCKTYPE EventsFlags, | | _In_ KSEVENTS_LOCKTYPE EventsFlags, |
| _In_ PVOID EventsLock | | _In_ PVOID EventsLock |
| ); | | ); |
| | |
|
| | KSDDKAPI |
| | NTSTATUS |
| | NTAPI |
| | KsGenerateThermalEvent( |
| | _In_ PVOID Object, |
| | _In_ KSDEVICE_THERMAL_STATE Value |
| | ); |
| | |
| | // |
| | //Independent KS Thermal notifications.. |
| | // |
| | |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | typedef |
| | void |
| | (* PFNKSDEVICETHERMALACTIVECOOLING)( |
| | _In_ PKSDEVICE KsDevice, |
| | _In_ BOOLEAN Engaged, |
| | _Out_ KSDEVICE_THERMAL_STATE* DeviceThermalState |
| | ); |
| | |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | typedef |
| | void |
| | (*PFNKSDEVICETHERMALPASSIVECOOLING)( |
| | _In_ PKSDEVICE KsDevice, |
| | _In_ ULONG Percentage, |
| | _Out_ KSDEVICE_THERMAL_STATE* DeviceThermalState |
| | ); |
| | |
| | typedef struct _KSDEVICE_THERMAL_DISPATCH { |
| | PFNKSDEVICETHERMALACTIVECOOLING ActiveCooling; |
| | PFNKSDEVICETHERMALPASSIVECOOLING PassiveCooling; |
| | } KSDEVICE_THERMAL_DISPATCH, *PKSDEVICE_THERMAL_DISPATCH; |
| | |
| | KSDDKAPI |
| | NTSTATUS |
| | NTAPI |
| | KsDeviceRegisterThermalDispatch( |
| | _In_ PKSDEVICE KsDevice, |
| | _In_ PKSDEVICE_THERMAL_DISPATCH KsDeviceThermalDispatch |
| | ); |
| | |
| // property.c: | | // property.c: |
| | |
| _IRQL_requires_max_(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| KSDDKAPI | | KSDDKAPI |
| NTSTATUS | | NTSTATUS |
| NTAPI | | NTAPI |
| KsPropertyHandler( | | KsPropertyHandler( |
| _In_ PIRP Irp, | | _In_ PIRP Irp, |
| _In_ ULONG PropertySetsCount, | | _In_ ULONG PropertySetsCount, |
| _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet | | _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet |
| | |
| skipping to change at line 5138 | | skipping to change at line 5285 |
| ); | | ); |
| | |
| _IRQL_requires_max_(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| KSDDKAPI | | KSDDKAPI |
| PUNICODE_STRING | | PUNICODE_STRING |
| NTAPI | | NTAPI |
| KsFilterFactoryGetSymbolicLink( | | KsFilterFactoryGetSymbolicLink( |
| _In_ PKSFILTERFACTORY FilterFactory | | _In_ PKSFILTERFACTORY FilterFactory |
| ); | | ); |
| | |
|
| | #if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) |
| | |
| | // Forward decl. |
| | typedef struct _KSDEVICE_PROFILE_INFO |
| | KSDEVICE_PROFILE_INFO, *PKSDEVICE_PROFILE_INFO; |
| | |
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | KSDDKAPI |
| | NTSTATUS |
| | NTAPI |
| | KsInitializeDeviceProfile( |
| | _In_ PKSFILTERFACTORY FilterFactory |
| | ); |
| | |
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | KSDDKAPI |
| | NTSTATUS |
| | NTAPI |
| | KsPublishDeviceProfile( |
| | _In_ PKSFILTERFACTORY FilterFactory, |
| | _In_ PKSDEVICE_PROFILE_INFO Profile |
| | ); |
| | |
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | KSDDKAPI |
| | NTSTATUS |
| | NTAPI |
| | KsPersistDeviceProfile( |
| | _In_ PKSFILTERFACTORY FilterFactory |
| | ); |
| | |
| | #endif // NTDDI_WINTHRESHOLD |
| | |
| _IRQL_requires_max_(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| KSDDKAPI | | KSDDKAPI |
| void | | void |
| NTAPI | | NTAPI |
| KsAddEvent( | | KsAddEvent( |
| _In_ PVOID Object, | | _In_ PVOID Object, |
| _In_ PKSEVENT_ENTRY EventEntry | | _In_ PKSEVENT_ENTRY EventEntry |
| ); | | ); |
| | |
| _IRQL_requires_max_(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | |
| skipping to change at line 6230 | | skipping to change at line 6410 |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
| #endif // !defined(_NTDDK_) | | #endif // !defined(_NTDDK_) |
| | |
| #if defined(__cplusplus) | | #if defined(__cplusplus) |
| } | | } |
| #endif // defined(__cplusplus) | | #endif // defined(__cplusplus) |
| | |
|
| | // |
| | //Start of MDL caching related decisions |
| | // |
| | |
| | #if defined(__cplusplus) |
| | extern "C" { |
| | #endif // defined(__cplusplus) |
| | |
| | // |
| | //MDL sharing related definitions |
| | // |
| | typedef union _MF_MDL_SHARED_PAYLOAD_KEY{ |
| | struct { |
| | ULONG pHandle; /* The Handle which represents the user mode Pin Ha |
| | ndle */ |
| | ULONG fHandle; |
| | ULONG64 uPayload; /* The PayLoad from Sample, which is the Buffer at |
| | tached */ |
| | }combined; |
| | GUID GMDLHandle; |
| | }MF_MDL_SHARED_PAYLOAD_KEY, *PMF_MDL_SHARED_PAYLOAD_KEY; |
| | // |
| | //We need the handle and upayload to be ULONG64 |
| | //to adjust for 64 bit systems and 32 bit systems |
| | // |
| | #define MF_SET_SHARED_MDLHANDLE(a,b,c,d){\ |
| | d.combined.phandle = (ULONG32)a;\ |
| | d.combined.fhandle = (ULONG32)b;\ |
| | d.combined.upayload = (ULONG64)c;\ |
| | } |
| | |
| | #if defined(_NTDDK_) |
| | |
| | _IRQL_requires_max_(DISPATCH_LEVEL) |
| | typedef |
| | VOID |
| | (*PFNKSCANCELPINNEDMDL)( |
| | _In_ GUID, |
| | _In_ PVOID, |
| | _In_ PVOID |
| | ); |
| | |
| | _Must_inspect_result_ |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | KSDDKAPI |
| | NTSTATUS |
| | WINAPI |
| | KsAcquireCachedMdl( |
| | _In_ PIRP Irp, |
| | _In_ REFGUID Guid, |
| | _In_ PFNKSCANCELPINNEDMDL CancelRoutine, |
| | _In_ PVOID CancelContext, |
| | _Outptr_result_maybenull_ PMDL *MdlAddr, |
| | _Outptr_result_maybenull_ PVOID* ReleaseContext |
| | ); |
| | |
| | _Must_inspect_result_ |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | KSDDKAPI |
| | NTSTATUS |
| | WINAPI |
| | KsReleaseCachedMdl( |
| | _In_ REFGUID Guid, |
| | _In_ PMDL MdlAddr, |
| | _In_ HANDLE ReleaseContext |
| | ); |
| | |
| | #endif |
| | |
| | #if defined(__cplusplus) |
| | } |
| | #endif // defined(__cplusplus) |
| | |
| | // |
| | //End of MDL sharing related definitions |
| | // |
| | |
| #define DENY_USERMODE_ACCESS( pIrp, CompleteRequest ) \ | | #define DENY_USERMODE_ACCESS( pIrp, CompleteRequest ) \ |
| if ( pIrp->RequestorMode != KernelMode ) { \ | | if ( pIrp->RequestorMode != KernelMode ) { \ |
| pIrp->IoStatus.Information = 0; \ | | pIrp->IoStatus.Information = 0; \ |
| pIrp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; \ | | pIrp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; \ |
| if ( CompleteRequest ) IoCompleteRequest ( pIrp, IO_NO_INCREMENT ); \ | | if ( CompleteRequest ) IoCompleteRequest ( pIrp, IO_NO_INCREMENT ); \ |
| return STATUS_INVALID_DEVICE_REQUEST; \ | | return STATUS_INVALID_DEVICE_REQUEST; \ |
| } | | } |
| | |
| #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ | | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| #pragma endregion | | #pragma endregion |
| | |
| End of changes. 12 change blocks. |
| 3 lines changed or deleted | | 266 lines changed or added |
|