rdpdr-fs-messages.h (3781B)
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20#ifndef GUAC_RDP_CHANNELS_RDPDR_FS_MESSAGES_H 21#define GUAC_RDP_CHANNELS_RDPDR_FS_MESSAGES_H 22 23/** 24 * Handlers for core drive I/O requests. Requests handled here may be simple 25 * messages handled directly, or more complex multi-type messages handled 26 * elsewhere. 27 * 28 * @file rdpdr-fs-messages.h 29 */ 30 31#include "channels/rdpdr/rdpdr.h" 32 33#include <winpr/stream.h> 34 35/** 36 * Handles a Server Create Drive Request. Despite its name, this request opens 37 * a file. 38 */ 39guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_create; 40 41/** 42 * Handles a Server Close Drive Request. This request closes an open file. 43 */ 44guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_close; 45 46/** 47 * Handles a Server Drive Read Request. This request reads from a file. 48 */ 49guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_read; 50 51/** 52 * Handles a Server Drive Write Request. This request writes to a file. 53 */ 54guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_write; 55 56/** 57 * Handles a Server Drive Control Request. This request handles one of any 58 * number of Windows FSCTL_* control functions. 59 */ 60guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_device_control; 61 62/** 63 * Handles a Server Drive Query Volume Information Request. This request 64 * queries information about the redirected volume (drive). This request 65 * has several query types which have their own handlers defined in a 66 * separate file. 67 */ 68guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_volume_info; 69 70/** 71 * Handles a Server Drive Set Volume Information Request. Currently, this 72 * RDPDR implementation does not support setting of volume information. 73 */ 74guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_set_volume_info; 75 76/** 77 * Handles a Server Drive Query Information Request. This request queries 78 * information about a specific file. This request has several query types 79 * which have their own handlers defined in a separate file. 80 */ 81guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_file_info; 82 83/** 84 * Handles a Server Drive Set Information Request. This request sets 85 * information about a specific file. Currently, this RDPDR implementation does 86 * not support setting of file information. 87 */ 88guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_set_file_info; 89 90/** 91 * Handles a Server Drive Query Directory Request. This request queries 92 * information about a specific directory. This request has several query types 93 * which have their own handlers defined in a separate file. 94 */ 95guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_query_directory; 96 97/** 98 * Handles a Server Drive NotifyChange Directory Request. This request requests 99 * directory change notification. 100 */ 101guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_notify_change_directory; 102 103/** 104 * Handles a Server Drive Lock Control Request. This request locks or unlocks 105 * portions of a file. 106 */ 107guac_rdpdr_device_iorequest_handler guac_rdpdr_fs_process_lock_control; 108 109#endif 110