Функция ImportCallback - определяемая программой функция повторного вызова, используемая с WriteEncryptedFileRaw. Система вызывает ImportCallback один или несколько раз, каждый раз, когда извлекает часть данных резервного файла. ImportCallback читает данные из резервного файла последовательно и восстанавливает данные, а система продолжает вызывать ее до тех пор, пока она не прочитает все данные резервного файла.
Тип PFE_IMPORT_FUNC определяет указатель на эту функцию повторного вызова. ImportCallback - имя - заместитель для определяемого программой имени функции.
Синтаксис
DWORD WINAPI ImportCallback( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ); |
Параметры
pbData
[in] Указатель на поддерживаемый системой буфер, получающий блок данных, которые будут восстановлены.pvCallbackContext
[in] Указатель на определяемый программой и распределенный контекстный блок. Приложение передает этот указатель в функцию WriteEncryptedFileRaw, а она переправляет этот указатель в функцию повторного вызова так, чтобы эта функция могла иметь доступ к конкретным для приложения данным. Это данные могут быть структурой и могут содержать любые данные нужные приложению, такие как дескриптор файла, который содержит резервную копию зашифрованного файла.ulLength
[in, out] При входе в функцию, этот параметр определяет длину буфера, который предоставляет система. Функция повторного вызова должна записывать не больше байтов в буфер, чем это указано параметром pbData.При выходе, функция должна установить это число байтов данных, записанных в pbData.
Возвращаемые значения
Если функция завершается успешно, она должна установить возвращаемое значение в ERROR_SUCCESS, и установить значение, на которое указывает параметр ulLength, в число байтов, скопированных в pbData.
Когда достигается конец резервного файла, параметр *ulLength устанавливается нуль, чтобы сообщить системе, что файл полностью обработан.
Если функция завершается ошибкой, возвращаемое значение устанавливается в ненулевой код ошибки, определяемый в WinError.h. Например, если эта функция завершается ошибкой, потому что API, который ее вызывает, завершается ошибкой, Вы можете установить возвращаемое значение в значение, возвращенное GetLastError завершенного ошибкой API.
Замечания
Система вызывает функцию ImportCallback, до тех пор, пока функция повторного вызова не укажет, что нет больше восстанавливаемых данных. Чтобы указать, что нет больше восстанавливаемых данных, *ulLength устанавливается в 0 и используется код возврата ERROR_SUCCESS. Вы можете использовать определяемый программой контекстный блок для внутреннего отслеживания информации типа дескриптор файла и текущее смещение в файле.
Смотри также
Обзор Шифрование файлов, Функции, используемые для шифрования файловой системой, CloseEncryptedFileRaw, ExportCallback, OpenEncryptedFileRaw, ReadEncryptedFileRaw, WriteEncryptedFileRaw
Размещение и совместимость ImportCallback |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT |
Нет |
е |
Windows Me |
Нет |
н |
Windows 98 |
Нет |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Нет |
в | ||
е | ||
р | ||
Используемая библиотека |
- |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |