Headers diff for ksuser.dll between 6.3.9600.17415-Windows 8.1 and 10.0.10586.0-Windows 10 1511 10586.494 versions



 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

This html diff was produced by rfcdiff 1.41.