Здравствуйте rudteam, Вы писали:
R>никак не могу решить следующую проблему.
хъ
R>аналогичные проблемы и с FSCTL_GET_COMPRESSION
Может потому, что запрашивать такую информацию можно только у файлов и директорий? Для устройств это не логично.

Вот такой код у меня прекрасно работает:
HANDLE hDevice = CreateFile("c:\\temp",
GENERIC_ALL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,NULL);
USHORT my=COMPRESSION_FORMAT_DEFAULT;
DWORD BytesReturned = 0;
if (!DeviceIoControl(hDevice,FSCTL_GET_COMPRESSION,
NULL,0,&my,sizeof(my),&BytesReturned,NULL)){
int err = GetLastError();
}
CloseHandle(hDevice);
Т.е. DeviceIoControl() ошибку не возвращает.