Neo
Neo

Reputation:

How can I detect when an SD card is plugged in?

I'm writing a PC application in C++ that needs to detect when a user connects an SD card to his/her computer. I know how to detect when the card reader is connected, but I do not know how to detect when individual cards are connected/removed.

Does Windows have an IO interface to detect arrival/removal of SD cards?

[Update] the WM_DEVICECHANGE technique that was suggested works only for detecting when an SD Card reader is plugged in. It does not detect when individual cards are inserted into the card reader.

Upvotes: 6

Views: 6751

Answers (4)

Terry
Terry

Reputation: 319

WM_DEVICECHANGE might be your answer. Here is an example with CDROM.

Upvotes: 1

Michael
Michael

Reputation: 104

Look at the Windows Portable Devices API, it has functionality that allows you to attach it to an SD reader (it's known as a storage device) and get events when a card is inserted or removed.

It just has two (possibly major) drawbacks:

  • It requires Windows Vista or later
  • It only has a COM API, so if you want to use it from a .NET program you either have a lot of interop ahead of you, or you have to write a wrapper in C++ or C++/CLI

Upvotes: 0

Oscar Cabrero
Oscar Cabrero

Reputation: 4169

check the messages from WM_DEVICECHANGE here is an example

Upvotes: 1

Dan Byström
Dan Byström

Reputation: 9244

Think this is what you need:

http://www.codeproject.com/KB/dotnet/devicevolumemonitor.aspx

Upvotes: 2

Related Questions