views:

299

answers:

5

Here's why I'm wondering. I recently bought an external TV tuner for my laptop, which has a feature that when it's being jostled, the hard drive stops spinning. However, even when I move my laptop, the video from the TV tuner (which handles all of the video processing, according to the book on it) doesn't stutter. I'm wondering if this TV tuner is accessing the video card and display systems directly instead of writing to the HDD and then displaying that.

This brings me to my question. What things can/can't an external device do?

+2  A: 

An unassisted USB device can't directly access any of the other hardware in the host machine. However, any software drivers that you might have installed on the host machine certainly can.

Greg Hewgill
A: 

Ah. So the application that I installed with the tuner, in my example, is allowing the tuner to access the video card/display controls, which is how it appears to be working. Thanks.

Thomas Owens
No, the application is moving data between the tuner and video card (or more accurately, the display subsystem of the OS).
Cody Brocious
+6  A: 

It's not accessing hardware directly, but it's not writing to the drive either. The program you're using is reading from the tuner and pushing that to the windowing system, which then goes through the layers of the OS to end up on the video card.

More generically, a USB device can never access hardware directly. A USB device must be accessed by the host and then they can send data back and forth that gets handled by the driver (whether that's a real 'driver' in the OS or software depends entirely on the use case). However, keep in mind that firewire does have support for DMA (direct memory access) and can therefore access system memory, which /could/ mean direct hardware access, although that's not the general use, but to speed up things like data copying.

Cody Brocious
+1  A: 

It's likely that the USB TV tuner is communicating directly with your video display drivers, rather than spooling TV content to the hard drive and then reading it again to send it to the display.

Even with a DVR-type setup you would probably spool to the HDD simultaneously to sending to the display, rather than serially (TV->HDD then HDD->display).

Guy Starbuck
Actually, the way the data would flow is something like this (obviously this depends on the OS): Tuner -> USB stack -> tuner driver -> tuner application -> display subsystem -> video driver -> video card.The tuner application is what joins the two 'subsystems', which are indepen
Cody Brocious
A: 

One way a USB device could affect a system on its own would be if it was badly-designed/rogue/broken and was pulling the various interface signals inappropriately. For instance a device could sporadically pull the ground or +5v line out of step and hold them there, depending on the design of the overall system this could cause wider problems.

Chopper3