Stream class minidriver - Windows 11 24H2

I have an old Stream Class minidriver used as a virtual camera (using the SRB interface, originally based on the testcap sample). Despite the age, it has been working fine all these years.. but it seems the new 24H2 windows update might be the end of the line.

Similar to when Win 8.1 was released, Media Foundation apps are no longer able to get data from the device (community .osr .com/t/testcap-based-virtual-video-driver-problems-with-windows-8-1/48839).

I have not been able to find anything in the documentation to suggest the cause (the related the documentation is still up and looks unchanged).

From my debugging: the SRB_GET_DATA_INTERSECTION call always gets IntersectInfo->SizeOfDataFormatBuffer size of zero.

It used to be: you would get a size query where SizeOfDataFormatBuffer == sizeof(ULONG), followed by the format query with a larger buffer (ex: community .osr .com/t/streaming-driver-problem/8925/2, essentially the equivalent of DataSize parameter in AVStream IntersectHandler routine).

This still happens and works with DirectShow apps, but it is no longer working with Media Foundation apps: only a zero length / null DataFormatBuffer ever comes through.

Any possible ideas or hints would be appreciated.

Upd: Resolved

Turns out the stream class driver had inherited a flaw from the original testcap code that went under the radar all these years. After looking through other samples we find the correct way of handling zero sized intersection requests

if (IntersectInfo->SizeOfDataFormatBuffer == 0) {
    pSrb->Status = STATUS_BUFFER_OVERFLOW;
    pSrb->ActualBytesTransferred = FormatSize;
    ...
}