The case USB_MSC_DEVICE_GET_INFO will not be called. windows uses the data from USB_Class_MSC_Init(.) and caches it. So, setting total_lba_device_supports and length_of_each_lab_of_device is needed before USB-enumeration.
The free space info, I guess, windows calculates it from FAT data directly, but I'm not sure. Remark, FAT is also cached by windows. Currently, I'm examinig such topics, too. However, currently only ramdisk for MSD works at me.
kwebster83: PLS, Could you provide your code, especially for USB_MSC_DEVICE_READ_REQUEST to adapt SD card to MSD? I tried read (sdcard_handle, lba_data_ptr->buff_ptr, lba_data_ptr->size); but get kerner panic and memory dump with it. TY