Files
VBoxGuest/data/shared_folders/constants.inc
2026-03-04 22:03:47 +03:00

114 lines
6.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; =============================================================================
; SharedFolder Constants (VirtualBox HGCM)
; =============================================================================
; =========================================
; Функции службы Shared Folders (SHFL_FN_*)
; =========================================
SHFL_FN_QUERY_MAPPINGS equ 1 ; Запросить список подключенных папок
SHFL_FN_QUERY_MAP_NAME equ 2 ; Запросить имя подключения по индексу
SHFL_FN_CREATE equ 3 ; Создать файл/каталог
SHFL_FN_CLOSE equ 4 ; Закрыть дескриптор
SHFL_FN_READ equ 5 ; Чтение из файла
SHFL_FN_WRITE equ 6 ; Запись в файл
SHFL_FN_LOCK equ 7 ; Блокировка файла
SHFL_FN_LIST equ 8 ; Получить содержимое каталога
SHFL_FN_INFORMATION equ 9 ; Получить/установить информацию о файле
SHFL_FN_UNUSED_10 equ 10 ; (Зарезервировано)
SHFL_FN_REMOVE equ 11 ; Удалить файл/каталог
SHFL_FN_MAP_FOLDER_OLD equ 12 ; Устаревшее подключение папки (не использовать)
SHFL_FN_UNMAP_FOLDER equ 13 ; Отключить папку
SHFL_FN_RENAME equ 14 ; Переименовать/переместить
SHFL_FN_FLUSH equ 15 ; Сбросить кэш файла на диск
SHFL_FN_SET_UTF8 equ 16 ; Включить режим UTF-8 (0 параметров)
SHFL_FN_MAP_FOLDER equ 17 ; Подключить папку
SHFL_FN_READLINK equ 18 ; Прочитать символьную ссылку
SHFL_FN_SYMLINK equ 19 ; Создать символьную ссылку
SHFL_FN_SET_SYMLINKS equ 20 ; Разрешить/запретить симлинки (0 параметров)
SHFL_FN_SET_FILE_SIZE equ 24 ; Установить размер файла (усечь/расширить)
; Флаги для SHFL_FN_REMOVE
SHFL_REMOVE_FILE equ 0x01 ; Удалить файл
SHFL_REMOVE_DIR equ 0x02 ; Удалить каталог
SHFL_REMOVE_SYMLINK equ 0x04 ; Удалить символьную ссылку
; Флаги для SHFL_FN_RENAME
SHFL_RENAME_FILE equ 0x01 ; Переименовать файл
SHFL_RENAME_DIR equ 0x02 ; Переименовать каталог
SHFL_RENAME_REPLACE_IF_EXISTS equ 0x04 ; Заменить если существует
; Флаги для операции LIST (используются в SHFL_LIST_PARMS.Flags)
; ==============================================================
SHFL_LIST_NONE equ 0x00000000 ; Базовый листинг
SHFL_LIST_RETURN_ONE equ 0x00000001 ; Вернуть только первую запись
SHFL_LIST_RESTART equ 0x00000002 ; Начать перебор заново
SHFL_LIST_SIZE_RETURNED equ 0x00000004 ; В SizeReturned реальный размер данных
; Лимиты
; ======
SHFL_MAX_MAPPINGS equ 10 ; Максимальное число подключенных папок
SHFL_MAX_NAME_LEN equ 256 ; Макс. длина имени в символах
SHFL_MAX_PATH_LEN equ 4096 ; Макс. длина пути в байтах (включая UTF-8)
; Флаги создания/открытия файлов - SHFL_CF_*
; ======================================================================
; SHFL_CF_* — CreateFlags для SHFL_FN_CREATE (из shflsvc.h)
; ======================================================================
SHFL_CF_NONE equ 0x00000000
; Бит 0: Lookup only
SHFL_CF_LOOKUP equ 0x00000001
; Бит 1: Open target directory
SHFL_CF_OPEN_TARGET_DIRECTORY equ 0x00000002
; Бит 2: Object is a directory
SHFL_CF_DIRECTORY equ 0x00000004
; Биты 4..7: Action if file EXISTS
SHFL_CF_ACT_MASK_IF_EXISTS equ 0x000000F0
SHFL_CF_ACT_OPEN_IF_EXISTS equ 0x00000000 ; Open existing
SHFL_CF_ACT_FAIL_IF_EXISTS equ 0x00000010 ; Fail if exists
SHFL_CF_ACT_REPLACE_IF_EXISTS equ 0x00000020 ; Replace (truncate)
SHFL_CF_ACT_OVERWRITE_IF_EXISTS equ 0x00000030 ; Overwrite
; Биты 8..11: Action if file is NEW
SHFL_CF_ACT_MASK_IF_NEW equ 0x00000F00
SHFL_CF_ACT_CREATE_IF_NEW equ 0x00000000 ; Create new file
SHFL_CF_ACT_FAIL_IF_NEW equ 0x00000100 ; Fail if doesn't exist
; Биты 12..13: Access mode (read/write)
SHFL_CF_ACCESS_MASK_RW equ 0x00003000
SHFL_CF_ACCESS_NONE equ 0x00000000
SHFL_CF_ACCESS_READ equ 0x00001000
SHFL_CF_ACCESS_WRITE equ 0x00002000
SHFL_CF_ACCESS_READWRITE equ 0x00003000
; Биты 14..15: Deny mode (sharing)
SHFL_CF_ACCESS_MASK_DENY equ 0x0000C000
SHFL_CF_ACCESS_DENYNONE equ 0x00000000
SHFL_CF_ACCESS_DENYREAD equ 0x00004000
SHFL_CF_ACCESS_DENYWRITE equ 0x00008000
SHFL_CF_ACCESS_DENYALL equ 0x0000C000
; Биты 16..17: Attribute access
SHFL_CF_ACCESS_MASK_ATTR equ 0x00030000
SHFL_CF_ACCESS_ATTR_NONE equ 0x00000000
SHFL_CF_ACCESS_ATTR_READ equ 0x00010000
SHFL_CF_ACCESS_ATTR_WRITE equ 0x00020000
SHFL_CF_ACCESS_ATTR_READWRITE equ 0x00030000
; Бит 18: Append mode
SHFL_CF_ACCESS_APPEND equ 0x00040000
; ======================================================================
; SHFLCREATERESULT — результат CREATE
; ======================================================================
SHFL_NO_RESULT equ 0
SHFL_PATH_NOT_FOUND equ 1
SHFL_FILE_NOT_FOUND equ 2
SHFL_FILE_EXISTS equ 3
SHFL_FILE_CREATED equ 4
SHFL_FILE_REPLACED equ 5