Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > FSCTL_MOVE_FILE и Encryped File


Автор: salexn 30.6.2006, 10:37
Какие могут быть проблемы с данной операцией и с таким файлом?
И как правильно его(файл) получить handle для перемещения в этом случае.
Я получаю handle следующим образом
FileHandle := CreateFile(PAnsiChar(FileName), FILE_READ_ATTRIBUTES,
FILE_SHARE_READ OR FILE_SHARE_WRITE OR FILE_SHARE_DELETE,
nil, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, 0);

Но мне сказали, что откртые таким образом зашифрованные файлы после перемещения DeviceIoControl могут быть потеряны(точнее информация внутри них запорчена). Каким образом открыть правильно. Если можно то с кодом... 
Спасибо 

Автор: Damarus 30.6.2006, 12:18
Цитата

FSCTL_MOVE_FILE

The FSCTL_MOVE_FILE control code relocates one or more virtual clusters of a file from one logical cluster to another within the same volume. This operation is used during defragmentation.

To perform this operation, call the DeviceIoControl function with the following parameters.
Код

BOOL DeviceIoControl(
   (HANDLE) hDevice,            // handle to volume
   FSCTL_MOVE_FILE,             // dwIoControlCode
   (LPVOID) lpInBuffer,         // input buffer
   (DWORD) nInBufferSize,       // size of input buffer
   NULL,                        // lpOutBuffer
   0,                           // nOutBufferSize
   (LPDWORD) lpBytesReturned,   // number of bytes returned
   (LPOVERLAPPED) lpOverlapped  // OVERLAPPED structure
);


Parameters

hDevice 
[in] Handle to the volume that contains the file or directory whose clusters are to be moved. To retrieve a device handle, call the CreateFile function. Only administrators can open volume handles. 

Encrypted files must be opened with the FILE_READ_DATA, FILE_WRITE_DATA, FILE_APPEND_DATA, or FILE_EXECUTE access right. Other files need only be opened with the FILE_READ_ATTRIBUTES access right. For more information, see File Security and Access Rights.

........
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)