IOCTL_VOLUME_LOGICAL_TO_PHYSICAL не работает

Тема в разделе "WASM.NT.KERNEL", создана пользователем NeuronViking, 10 май 2009.

  1. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    Код (Text):
    1.    
    2. STARTING_VCN_INPUT_BUFFER inputVcn;
    3. RETRIEVAL_POINTERS_BUFFER rpBuf;
    4. VOLUME_LOGICAL_OFFSET lOffset;
    5. VOLUME_PHYSICAL_OFFSETS pOffset;
    6.  
    7. GetDiskFreeSpace( L"E:\\", &SectorsPerCluster, &BytesPerSector, &NumOfFreeClusters, &TotalClusters );
    8. printf("%d %d %d %d\n", SectorsPerCluster, BytesPerSector, NumOfFreeClusters, TotalClusters );
    9.  
    10. "8 512 3087183 4100591"
    11.  
    12. hFile = CreateFileA( "E:\\test.dat", FILE_ALL_ACCESS, 0, NULL, OPEN_EXISTING, 0, NULL ) ;
    13.  
    14. inputVcn.StartingVcn.QuadPart = 0;
    15. DeviceIoControl( hFile, FSCTL_GET_RETRIEVAL_POINTERS, &inputVcn, sizeof(STARTING_VCN_INPUT_BUFFER), &rpBuf, sizeof(RETRIEVAL_POINTERS_BUFFER), &dwBytesReturned, NULL );
    16.  
    17. "rpBuf.Extents[0].Lcn.QuadPart = 0x00000000000ebd00"
    18. "dwBytesReturned = 0x00000020"
    19.  
    20. lOffset.LogicalOffset = rpBuf.Extents[0].Lcn.QuadPart * SectorsPerCluster * BytesPerSector;
    21. DeviceIoControl( hFile, IOCTL_VOLUME_LOGICAL_TO_PHYSICAL, &lOffset, sizeof(VOLUME_LOGICAL_OFFSET), &pOffset, sizeof(VOLUME_PHYSICAL_OFFSETS), &dwBytesReturned, NULL );
    22.     if( bRet == FALSE )
    23.         printf("DeviceIoControl error 0x%08X\n", GetLastError() );
    24.  
    25. "DeviceIoControl error 0x00000057"
    Файловая система НТФС, компрессии нет, файл самый обычный...
    Не понимаю в чем может быть дело!
     
  2. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    ВОт это я торможу! =))) Тема закрыта, прошу прощения за беспокойство!