Я просмотрел основные моменты. 1) Файловые потоки перечисляются нормально с помощью BackupRead по этому поводу вопрос! Может ли BackupWrite записать данные из потока, который открыт READ_CONTROL? Как? Права SE_BACKUP и SE_RESTORE установлены. ------------- 2) Утилита NtBackup похоже умеет это делать и пользуется она Shadow Copy Provider - ом. Вопрос есть ли у кого пример как Этим воспользоваться, ну забэкапить файл... как обращаться к COM - объектам я знаю. 3) Могут ли Native функци открыть этот файл для чтения? ps в сторону MSDN прошу не посылать читаю как могу... С уважением Viewsight
ну... насколько я понял попробуй это: ... BOOL READONLY; ... hFile = CreateFile(FN,GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, \ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hFile==INVALID_HANDLE_VALUE) { hFile = CreateFile(FN,GENERIC_READ, FILE_SHARE_READ, \ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hFile==INVALID_HANDLE_VALUE) { CloseHandle(hFile); MessageBox(hWin,ErrText1,ErrCap,MB_ICONERROR); return; } READONLY = TRUE; } else { READONLY = FALSE; } if (READONLY) { hMap = CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL); } else { hMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,NULL); } if (!hMap) { CloseHandle(hFile); CloseHandle(hMap); MessageBox(hWin,ErrText2,ErrCap,MB_ICONERROR); return; } if (READONLY) { base = MapViewOfFile(hMap,FILE_MAP_READ,0,0,0); } else { base = MapViewOfFile(hMap,FILE_MAP_READ|FILE_MAP_WRITE,0,0,0); } возможно поможет...
volodya прав! изначнально файл был открыт другим процессом у которого параметер dwShareMode=0 а значит CrateFile - ом прочитатть не получится... Есть другие предложения? С уважением Viewsight