source: branches/samba-3.5.x/source4/ntptr/ntptr.h@ 717

Last change on this file since 717 was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 9.6 KB
Line 
1/*
2 Unix SMB/CIFS implementation.
3
4 NTPTR structures and defines
5
6 Copyright (C) Stefan (metze) Metzmacher 2005
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/* modules can use the following to determine if the interface has changed */
23#define NTPTR_INTERFACE_VERSION 0
24
25struct ntptr_context;
26
27enum ntptr_HandleType {
28 NTPTR_HANDLE_SERVER,
29 NTPTR_HANDLE_PRINTER,
30 NTPTR_HANDLE_PORT,
31 NTPTR_HANDLE_MONITOR
32};
33
34struct ntptr_GenericHandle {
35 enum ntptr_HandleType type;
36 struct ntptr_context *ntptr;
37 const char *object_name;
38 uint32_t access_mask;
39 void *private_data;
40};
41
42struct spoolss_OpenPrinterEx;
43struct spoolss_EnumPrinterData;
44struct spoolss_DeletePrinterData;
45struct spoolss_AddForm;
46struct spoolss_GetForm;
47struct spoolss_SetForm;
48struct spoolss_DeleteForm;
49struct spoolss_AddPrinterDriver;
50struct spoolss_DeletePrinterDriver;
51struct spoolss_GetPrinterDriverDirectory;
52struct spoolss_AddPrinter;
53struct spoolss_GetPrinter;
54struct spoolss_SetPrinter;
55struct spoolss_DeletePrinter;
56struct spoolss_GetPrinterDriver;
57struct spoolss_AddJob;
58struct spoolss_EnumJobs;
59struct spoolss_SetJob;
60struct spoolss_GetJob;
61struct spoolss_ScheduleJob;
62struct spoolss_ReadPrinter;
63struct spoolss_WritePrinter;
64struct spoolss_StartDocPrinter;
65struct spoolss_EndDocPrinter;
66struct spoolss_StartPagePrinter;
67struct spoolss_EndPagePrinter;
68struct spoolss_GetPrinterData;
69struct spoolss_SetPrinterData;
70struct spoolss_EnumPrinterDrivers;
71struct spoolss_EnumMonitors;
72struct spoolss_EnumPrinters;
73struct spoolss_EnumForms;
74struct spoolss_EnumPorts;
75struct spoolss_EnumPrintProcessors;
76struct spoolss_XcvData;
77struct spoolss_GetPrintProcessorDirectory;
78
79/* the ntptr operations structure - contains function pointers to
80 the backend implementations of each operation */
81struct ntptr_ops {
82 const char *name;
83
84 /* initial setup */
85 NTSTATUS (*init_context)(struct ntptr_context *ntptr);
86
87 /* PrintServer functions */
88 WERROR (*OpenPrintServer)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
89 struct spoolss_OpenPrinterEx *r,
90 const char *printer_name,
91 struct ntptr_GenericHandle **server);
92 WERROR (*XcvDataPrintServer)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
93 struct spoolss_XcvData *r);
94
95 /* PrintServer PrinterData functions */
96 WERROR (*EnumPrintServerData)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
97 struct spoolss_EnumPrinterData *r);
98 WERROR (*GetPrintServerData)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
99 struct spoolss_GetPrinterData *r);
100 WERROR (*SetPrintServerData)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
101 struct spoolss_SetPrinterData *r);
102 WERROR (*DeletePrintServerData)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
103 struct spoolss_DeletePrinterData *r);
104
105 /* PrintServer Form functions */
106 WERROR (*EnumPrintServerForms)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
107 struct spoolss_EnumForms *r);
108 WERROR (*AddPrintServerForm)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
109 struct spoolss_AddForm *r);
110 WERROR (*SetPrintServerForm)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
111 struct spoolss_SetForm *r);
112 WERROR (*DeletePrintServerForm)(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
113 struct spoolss_DeleteForm *r);
114
115 /* PrintServer Driver functions */
116 WERROR (*EnumPrinterDrivers)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
117 struct spoolss_EnumPrinterDrivers *r);
118 WERROR (*AddPrinterDriver)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
119 struct spoolss_AddPrinterDriver *r);
120 WERROR (*DeletePrinterDriver)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
121 struct spoolss_DeletePrinterDriver *r);
122 WERROR (*GetPrinterDriverDirectory)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
123 struct spoolss_GetPrinterDriverDirectory *r);
124
125 /* Port functions */
126 WERROR (*EnumPorts)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
127 struct spoolss_EnumPorts *r);
128 WERROR (*OpenPort)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
129 struct spoolss_OpenPrinterEx *r,
130 const char *port_name,
131 struct ntptr_GenericHandle **port);
132 WERROR (*XcvDataPort)(struct ntptr_GenericHandle *port, TALLOC_CTX *mem_ctx,
133 struct spoolss_XcvData *r);
134
135 /* Monitor functions */
136 WERROR (*EnumMonitors)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
137 struct spoolss_EnumMonitors *r);
138 WERROR (*OpenMonitor)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
139 struct spoolss_OpenPrinterEx *r,
140 const char *monitor_name,
141 struct ntptr_GenericHandle **monitor);
142 WERROR (*XcvDataMonitor)(struct ntptr_GenericHandle *monitor, TALLOC_CTX *mem_ctx,
143 struct spoolss_XcvData *r);
144
145 /* PrintProcessor functions */
146 WERROR (*EnumPrintProcessors)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
147 struct spoolss_EnumPrintProcessors *r);
148 WERROR (*GetPrintProcessorDirectory)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
149 struct spoolss_GetPrintProcessorDirectory *r);
150
151 /* Printer functions */
152 WERROR (*EnumPrinters)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
153 struct spoolss_EnumPrinters *r);
154 WERROR (*OpenPrinter)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
155 struct spoolss_OpenPrinterEx *r,
156 const char *printer_name,
157 struct ntptr_GenericHandle **printer);
158 WERROR (*AddPrinter)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
159 struct spoolss_AddPrinter *r,
160 struct ntptr_GenericHandle **printer);
161 WERROR (*GetPrinter)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
162 struct spoolss_GetPrinter *r);
163 WERROR (*SetPrinter)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
164 struct spoolss_SetPrinter *r);
165 WERROR (*DeletePrinter)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
166 struct spoolss_DeletePrinter *r);
167 WERROR (*XcvDataPrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
168 struct spoolss_XcvData *r);
169
170 /* Printer Driver functions */
171 WERROR (*GetPrinterDriver)(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
172 struct spoolss_GetPrinterDriver *r);
173
174 /* Printer PrinterData functions */
175 WERROR (*EnumPrinterData)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
176 struct spoolss_EnumPrinterData *r);
177 WERROR (*GetPrinterData)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
178 struct spoolss_GetPrinterData *r);
179 WERROR (*SetPrinterData)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
180 struct spoolss_SetPrinterData *r);
181 WERROR (*DeletePrinterData)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
182 struct spoolss_DeletePrinterData *r);
183
184 /* Printer Form functions */
185 WERROR (*EnumPrinterForms)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
186 struct spoolss_EnumForms *r);
187 WERROR (*AddPrinterForm)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
188 struct spoolss_AddForm *r);
189 WERROR (*GetPrinterForm)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
190 struct spoolss_GetForm *r);
191 WERROR (*SetPrinterForm)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
192 struct spoolss_SetForm *r);
193 WERROR (*DeletePrinterForm)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
194 struct spoolss_DeleteForm *r);
195
196 /* Printer Job functions */
197 WERROR (*EnumJobs)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
198 struct spoolss_EnumJobs *r);
199 WERROR (*AddJob)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
200 struct spoolss_AddJob *r);
201 WERROR (*ScheduleJob)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
202 struct spoolss_ScheduleJob *r);
203 WERROR (*GetJob)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
204 struct spoolss_GetJob *r);
205 WERROR (*SetJob)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
206 struct spoolss_SetJob *r);
207
208 /* Printer Printing functions */
209 WERROR (*StartDocPrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
210 struct spoolss_StartDocPrinter *r);
211 WERROR (*EndDocPrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
212 struct spoolss_EndDocPrinter *r);
213 WERROR (*StartPagePrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
214 struct spoolss_StartPagePrinter *r);
215 WERROR (*EndPagePrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
216 struct spoolss_EndPagePrinter *r);
217 WERROR (*WritePrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
218 struct spoolss_WritePrinter *r);
219 WERROR (*ReadPrinter)(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
220 struct spoolss_ReadPrinter *r);
221};
222
223struct ntptr_context {
224 const struct ntptr_ops *ops;
225 void *private_data;
226 struct tevent_context *ev_ctx;
227 struct loadparm_context *lp_ctx;
228};
229
230/* this structure is used by backends to determine the size of some critical types */
231struct ntptr_critical_sizes {
232 int interface_version;
233 int sizeof_ntptr_critical_sizes;
234 int sizeof_ntptr_context;
235 int sizeof_ntptr_ops;
236};
237
238struct loadparm_context;
239
240#include "ntptr/ntptr_proto.h"
Note: See TracBrowser for help on using the repository browser.