1) The OS is XP or Vista 2) The device is not attached via any USB gizmo. It works only in a card reader attached directly to the PCI bus. (Can scsi pass through get around this? It's not an ATA or SCSI command...) 3) Admin privileges...
What not to do:
1) IOCTL_DISK_GET_STORAGEID 2) GetFileInformationByHandle
As both these return a number assigned when the volume is created. It will change next time the drive is formatted. What I did:
Use IOCTL_SFFDISK_DEVICE_COMMAND to send command 10 (see the SD spec).