1 /* 2 * Unix SMB/CIFS implementation. 3 * 4 * SPOOLSS RPC Pipe server / winreg client routines 5 * 6 * Copyright (c) 2010 Andreas Schneider <asn@samba.org> 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #ifndef _SRV_SPOOLSS_UITL_H 23 #define _SRV_SPOOLSS_UITL_H 24 25 struct auth_session_info; 26 struct dcerpc_binding_handle; 27 28 WERROR winreg_printer_binding_handle(TALLOC_CTX *mem_ctx, 29 const struct auth_session_info *session_info, 30 struct messaging_context *msg_ctx, 31 struct dcerpc_binding_handle **winreg_binding_handle); 32 33 WERROR winreg_delete_printer_key_internal(TALLOC_CTX *mem_ctx, 34 const struct auth_session_info *session_info, 35 struct messaging_context *msg_ctx, 36 const char *printer, 37 const char *key); 38 WERROR winreg_printer_update_changeid_internal(TALLOC_CTX *mem_ctx, 39 const struct auth_session_info *session_info, 40 struct messaging_context *msg_ctx, 41 const char *printer); 42 WERROR winreg_printer_get_changeid_internal(TALLOC_CTX *mem_ctx, 43 const struct auth_session_info *session_info, 44 struct messaging_context *msg_ctx, 45 const char *printer, 46 uint32_t *pchangeid); 47 WERROR winreg_get_printer_internal(TALLOC_CTX *mem_ctx, 48 const struct auth_session_info *session_info, 49 struct messaging_context *msg_ctx, 50 const char *printer, 51 struct spoolss_PrinterInfo2 **pinfo2); 52 WERROR winreg_create_printer_internal(TALLOC_CTX *mem_ctx, 53 const struct auth_session_info *session_info, 54 struct messaging_context *msg_ctx, 55 const char *sharename); 56 WERROR winreg_update_printer_internal(TALLOC_CTX *mem_ctx, 57 const struct auth_session_info *session_info, 58 struct messaging_context *msg_ctx, 59 const char *sharename, 60 uint32_t info2_mask, 61 struct spoolss_SetPrinterInfo2 *info2, 62 struct spoolss_DeviceMode *devmode, 63 struct security_descriptor *secdesc); 64 WERROR winreg_set_printer_dataex_internal(TALLOC_CTX *mem_ctx, 65 const struct auth_session_info *session_info, 66 struct messaging_context *msg_ctx, 67 const char *printer, 68 const char *key, 69 const char *value, 70 enum winreg_Type type, 71 uint8_t *data, 72 uint32_t data_size); 73 WERROR winreg_enum_printer_dataex_internal(TALLOC_CTX *mem_ctx, 74 const struct auth_session_info *session_info, 75 struct messaging_context *msg_ctx, 76 const char *printer, 77 const char *key, 78 uint32_t *pnum_values, 79 struct spoolss_PrinterEnumValues **penum_values); 80 WERROR winreg_get_printer_dataex_internal(TALLOC_CTX *mem_ctx, 81 const struct auth_session_info *session_info, 82 struct messaging_context *msg_ctx, 83 const char *printer, 84 const char *key, 85 const char *value, 86 enum winreg_Type *type, 87 uint8_t **data, 88 uint32_t *data_size); 89 WERROR winreg_delete_printer_dataex_internal(TALLOC_CTX *mem_ctx, 90 const struct auth_session_info *session_info, 91 struct messaging_context *msg_ctx, 92 const char *printer, 93 const char *key, 94 const char *value); 95 WERROR winreg_get_driver_internal(TALLOC_CTX *mem_ctx, 96 const struct auth_session_info *session_info, 97 struct messaging_context *msg_ctx, 98 const char *architecture, 99 const char *driver_name, 100 uint32_t driver_version, 101 struct spoolss_DriverInfo8 **_info8); 102 WERROR winreg_get_driver_list_internal(TALLOC_CTX *mem_ctx, 103 const struct auth_session_info *session_info, 104 struct messaging_context *msg_ctx, 105 const char *architecture, 106 uint32_t version, 107 uint32_t *num_drivers, 108 const char ***drivers_p); 109 WERROR winreg_del_driver_internal(TALLOC_CTX *mem_ctx, 110 const struct auth_session_info *session_info, 111 struct messaging_context *msg_ctx, 112 struct spoolss_DriverInfo8 *info8, 113 uint32_t version); 114 WERROR winreg_add_driver_internal(TALLOC_CTX *mem_ctx, 115 const struct auth_session_info *session_info, 116 struct messaging_context *msg_ctx, 117 struct spoolss_AddDriverInfoCtr *r, 118 const char **driver_name, 119 uint32_t *driver_version); 120 WERROR winreg_get_printer_secdesc_internal(TALLOC_CTX *mem_ctx, 121 const struct auth_session_info *session_info, 122 struct messaging_context *msg_ctx, 123 const char *sharename, 124 struct spoolss_security_descriptor **psecdesc); 125 WERROR winreg_set_printer_secdesc_internal(TALLOC_CTX *mem_ctx, 126 const struct auth_session_info *session_info, 127 struct messaging_context *msg_ctx, 128 const char *sharename, 129 const struct spoolss_security_descriptor *secdesc); 130 WERROR winreg_printer_enumforms1_internal(TALLOC_CTX *mem_ctx, 131 const struct auth_session_info *session_info, 132 struct messaging_context *msg_ctx, 133 uint32_t *pnum_info, 134 union spoolss_FormInfo **pinfo); 135 WERROR winreg_printer_getform1_internal(TALLOC_CTX *mem_ctx, 136 const struct auth_session_info *session_info, 137 struct messaging_context *msg_ctx, 138 const char *form_name, 139 struct spoolss_FormInfo1 *r); 140 WERROR winreg_printer_addform1_internal(TALLOC_CTX *mem_ctx, 141 const struct auth_session_info *session_info, 142 struct messaging_context *msg_ctx, 143 struct spoolss_AddFormInfo1 *form); 144 WERROR winreg_printer_setform1_internal(TALLOC_CTX *mem_ctx, 145 const struct auth_session_info *session_info, 146 struct messaging_context *msg_ctx, 147 const char *form_name, 148 struct spoolss_AddFormInfo1 *form); 149 WERROR winreg_printer_deleteform1_internal(TALLOC_CTX *mem_ctx, 150 const struct auth_session_info *session_info, 151 struct messaging_context *msg_ctx, 152 const char *form_name); 153 WERROR winreg_enum_printer_key_internal(TALLOC_CTX *mem_ctx, 154 const struct auth_session_info *session_info, 155 struct messaging_context *msg_ctx, 156 const char *printer, 157 const char *key, 158 uint32_t *pnum_subkeys, 159 const char ***psubkeys); 160 WERROR winreg_get_core_driver_internal(TALLOC_CTX *mem_ctx, 161 const struct auth_session_info *session_info, 162 struct messaging_context *msg_ctx, 163 const char *architecture, 164 const struct GUID *core_driver_guid, 165 struct spoolss_CorePrinterDriver **core_printer_driver); 166 WERROR winreg_add_core_driver_internal(TALLOC_CTX *mem_ctx, 167 const struct auth_session_info *session_info, 168 struct messaging_context *msg_ctx, 169 const char *architecture, 170 const struct spoolss_CorePrinterDriver *core_printer_driver); 171 WERROR winreg_add_driver_package_internal(TALLOC_CTX *mem_ctx, 172 const struct auth_session_info *session_info, 173 struct messaging_context *msg_ctx, 174 const char *package_id, 175 const char *architecture, 176 const char *driver_store_path, 177 const char *cab_path); 178 WERROR winreg_get_driver_package_internal(TALLOC_CTX *mem_ctx, 179 const struct auth_session_info *session_info, 180 struct messaging_context *msg_ctx, 181 const char *package_id, 182 const char *architecture, 183 const char **driver_store_path, 184 const char **cab_path); 185 WERROR winreg_del_driver_package_internal(TALLOC_CTX *mem_ctx, 186 const struct auth_session_info *session_info, 187 struct messaging_context *msg_ctx, 188 const char *package_id, 189 const char *architecture); 190 #endif /* _SRV_SPOOLSS_UITL_H */ 191