Usually, follow this process when you're adding, deleting or changing a particular video setting (i.e resolution, framerate etc):
1. If you're adding a new setting, then you need to have a new Video Streaming Frame Descriptor and optionally a new Video Streaming Format Descriptor. In the cyfxuvcdscr.c file, go to the section that says "Class specific Uncompressed VS format descriptor". This tells the PC that the camera has a bunch of settings that follow this specific format. Under this format descriptor, you'll have one or more frame descriptors which specify the actual resolution(s) and framerate(s) supported by the camera.
For example, if you need to support RGB888 1280x720, YUV422 1920x1280 and YUV422 640x480, then your descriptor structure will be something like this:
VS FORMAT DESCRIPTOR (RGB888, 24bit 16:9)
VS FRAME DESCIPTOR (1280 x 720)
VS FORMAT DESCRIPTOR (YUV422, 16bit 16:9)
VS FRAME DESCIPTOR (1920 x 1280)
VS FRAME DESCIPTOR (640 x 480)
In your situation, we'll ideally need to change both the format and frame descriptors. But since 10-bit monochrome is not supported by default, the best option is to use only 8 bits of the sensor output and send these 8-bits to Y. Hardcode the U/V byte to 0x80. With this design, you'll only need to change the frame descriptor and not the format descriptor.
In the frame descriptor, look at the field commented with "Width in pixel" and "Height in pixel" and change these to 1280 and 1024. Also change the subsequent bitrate fields to the correct bit rate (i.e width x height x fps x 8).
2. If you add more video settings, then you need to filter the host requests and handle them accordingly. In UVCHandleVideoStreamingRqts(..), the GET_CUR and SET_CUR handlers under PROBE_CTRL and COMMIT_CTRL need to be changed.
The PC sends out the desired frame descriptor ID in a structure which you need to read and then change the sensor's config to that setting.