2010-11-24 3 views

Répondre

1

De WinIoCtl.h qui vient avec Windows SDK v5.0:

#define CTL_CODE(DeviceType, Function, Method, Access) (    \ 
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ 
) 

#define METHOD_BUFFERED     0 

#define FILE_ANY_ACCESS     0 

#define FILE_DEVICE_MASS_STORAGE  0x0000002d 

#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE 

#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) 

Il est 2952208 ou 0x2d0c10.

+0

Merci! Mais je ne peux pas le faire fonctionner. Je pense que c'est un problème avec mon code: http://pastie.org/1321798 J'utilise disk geom parce que c'est la seule façon dont je peux habituellement l'obtenir pour retourner une valeur. Ce sera souvent un champ aléatoire dans la structure. – Eaton

+0

@Eaton: C'est une question différente :-) Je peux seulement aider avec la valeur du code de contrôle. – dtb

+0

Ha, d'accord. Je l'ai eu pour fonctionner, mais il semble que l'opération n'est pas supportée basée sur l'exception Win32 .. Hmm .. – Eaton

Questions connexes