2010-11-24 2 views
1

C# 클래스에서 dll 가져 오기와 함께 사용되는 값 중 하나가 상수 값 IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER에 있습니까? 상수가 WinIoCtl.h에 있다고 들었지만 아무 것도 발견되지 않았습니다.DIO 제어 코드가 필요함

누군가가 제공 할 수 있다면 크게 좋아할 것입니다. 윈도우 SDK의 5.0 함께 제공 WinIoCtl.h에서

답변

1

:

#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) 

는 그래서 2,952,208 또는 0x2d0c10입니다.

+0

감사! 그러나 나는 그것을 작동시킬 수 없다. 내 코드에 문제가 있다고 생각한다. http://pastie.org/1321798 디스크 기하 구조를 사용하기 때문에 값을 반환 할 수있는 유일한 방법이기 때문이다. 종종 구조체의 임의의 필드가됩니다. – Eaton

+0

@Eaton : 그건 다른 질문입니다 :-) 나는 단지 제어 코드의 가치를 도울 수 있습니다. – dtb

+0

하하하. 내가 일할 수있어,하지만 그것은 Win32 예외를 기반으로 작업이 지원되지 않습니다 나타납니다 .. 음 .. – Eaton

관련 문제