Files
VBoxGuest/data/clipboard/structs.inc
2026-03-04 22:03:47 +03:00

73 lines
3.0 KiB
HTML
Raw 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.
; =============================================================================
; Clipboard (HGCM service: Shared Clipboard / SHCL)
; =============================================================================
struct SHCL_MSG_GET
header HGCM_CALL
msg_type HGCM_PARM
formats HGCM_PARM
ends
struct SHCL_FORMATS_REPORT
header HGCM_CALL
formats HGCM_PARM
ends
struct SHCL_DATA_READ
header HGCM_CALL
format HGCM_PARM
buffer HGCM_PARM
size HGCM_PARM
ends
struct SHCL_DATA_WRITE
header HGCM_CALL
format HGCM_PARM
buffer HGCM_PARM
ends
; =============================================================================
; Clipboard Structures
;
; ПРИМЕЧАНИЕ: Старые структуры SHCL_MSG_GET, SHCL_FORMATS_REPORT,
; SHCL_DATA_READ, SHCL_DATA_WRITE УДАЛЕНЫ — они не нужны.
;
; Новый код использует плоский массив HGCM_PARM + hgcm_call32_pagelist,
; как в guest_props. Структуры с встроенным HGCM_CALL заголовком
; были нужны только для ручного формирования пакетов через
; hgcm_send_request, что больше не используется.
; =============================================================================
; struct CLIPBOARD_STATE
; client_id dd ? ; HGCM client ID
; connected dd ? ; 0 = not connected, 1 = connected
; formats_host dd ? ; Форматы доступные на хосте (битовая маска VBOX_SHCL_FMT_*)
; formats_guest dd ? ; Форматы доступные у гостя
; listen_state dd ?
; error_count dd ?
; ends
struct CLIPBOARD_STATE
client_id dd ? ; HGCM client ID
connected dd ? ; 0/1
listen_state dd ? ; IDLE/SUBMITTED
error_count dd ? ; Счетчик ошибок
formats_host dd ? ; Форматы от хоста
formats_guest dd ? ; Наши форматы
has_data dd ? ; Есть данные для чтения
data_size dd ? ; Размер данных
; Динамически выделяемые буферы
data_buf_ptr dd ? ; -> clip_data_buf (KernelAlloc 64K)
listen_pkt_virt dd ? ; -> clip_listen_pkt (KernelAlloc 4096, DMA)
listen_pkt_phys dd ? ; физ. адрес listen_pkt
parms_ptr dd ? ; -> clip_parms (KernelAlloc)
debug_buf_ptr dd ? ; -> clip_debug_buf (KernelAlloc)
; Поток слушателя (thread-based listener)
hgcm_event dd ? ; event handle (из CreateEvent)
hgcm_event_id dd ? ; event euid (из CreateEvent)
thread_id dd ? ; thread ID (из CreateThread)
thread_stop dd ? ; 1 = попросить поток завершиться
ends