USB port as pass-thru

Is it possible to use an Arduino as a USB pass-thru?

I am building a device that provides the status of photos being copied from an SD card to a computer. As the photos copy from the SD card reader connected to my Arduino to my PC, I'd use the LCD display to show a counter. Instead of having 2 USB cables connected to the PC, I'd like to connect the SD card reader to my Arduino then my Arduino to my PC.

SD card => SD card reader => Arduino USB => Arduino => Arduino USB => PC

Photos ===========================================>
<======Status =

Is something like this possible?

Yes - something like that.

You can get an SD card interface for the Arduino and avoid the issue of creating a USB interface for the Arduino. Some you can get on Ebay for less than £1 (no idea on quality) or from a variety of suppliers with products that probably have more backup. Some other shieds can have SD card readers built in such as Ethernet cards.

There are a libraries for using SD cards including sdfat and sd (built on sdfat).

No.
It will be very slow. Are they large photos ? How many hours upload-time is allowed per photo ?
The Arduino is not compatible with every SD card and does not support exFAT. I don't know if the Arduino can act as a USB mass storage. How else would you get the photos from the Arduino ? Via the Serial port with a script ? That would be very weird.

According to my experience, the SD card reader of a laptop is often cheap, outdated and very slow.
A SD card reader dongle with USB 3.0 is fast and works well. Passing that via the Arduino is not possible as far as I know.

Sending data to the Arduino with a Python script will work. Putting text on a LCD screen is no problem. Do you use Python or an other script ?

If you want to make this anyway, then perhaps a Raspberry Pi with a USB dongle to read the files can be used, with a Wifi connection to the computer to transfer the files.

Doesn't your OS (Windows or whatever) show you a count of files as they are copied?

USB is a complicated protocol (that is what makes life easy for users) and this is likely beyond your current capability if you have to ask the question.

You would need to create a USB hub (a component between the USB host and device). Additionally, you would need to do packet inspection and figure out what is send. There are no Arduino libraries that would help you do that.

There are only a few Arduinos that have native USB and even fewer that have a USB host capable controller. It looks like new Arduino Portenta H7 has the required hardware, but I would be surprised if the software was ready and easy to use. Even if you got USB drivers for everything you still would need to do the packet inspection.

An easier option (still not a beginner project) would be to create a SD card reader controller. That controller only needs USB device capabilities. USB has a concept called endpoint. You would create an endpoint for the mass storage class, and you would create an endpoint for a HID display device. From the PC it would look like there are two things connected to USB a mass storage device and a display. The display could be used by software on the PC to display the number of files copied (you would need to program that). The mass storage class could not tell you because it does not know what a file is. That is still handled by the OS.

Just remembered that Bill Greiman has also created a USBfat library here: GitHub - greiman/UsbFat: Arduino FAT32/FAT16 library for USB drives.

That would allow you to attach a USB drive to the arduino and store/retrieve files, but you would still have to obtain a suitable USB host shield (supported by USBfat).

You would still have the issue to connecting the PC to Arduino with a usuable link fast enough to transfer teh files in a reasonable time.

As I mentioned earlier you can get can ethernet shield with SDcard reader which would be a single hardware addon solution.
I assume you want the LCD display on the arduino to display files copied (anything else?)

You do not mention which arduino you plan to use, but it could easily get to the point where an Uno may not have enough memoery for what you intend and you may need a mega whichever solution you opt for.