r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
[tprouty/samba.git] / source / include / rpc_ntsvcs.h
1 /* 
2    Unix SMB/CIFS implementation.
3    SMB parameters and setup
4    Copyright (C) Gerald (Jerry) Carter        2005
5    
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10    
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15    
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef _RPC_NTSVCS_H /* _RPC_NTSVCS_H */
21 #define _RPC_NTSVCS_H
22
23 /* ntsvcs pipe */
24
25 #define NTSVCS_GET_VERSION              0x02
26 #define NTSVCS_VALIDATE_DEVICE_INSTANCE 0x06
27 #define NTSVCS_GET_ROOT_DEVICE_INSTANCE 0x07
28 #define NTSVCS_GET_DEVICE_LIST          0x0a
29 #define NTSVCS_GET_DEVICE_LIST_SIZE     0x0b
30 #define NTSVCS_GET_DEVICE_REG_PROPERTY  0x0d
31 #define NTSVCS_HW_PROFILE_FLAGS         0x28
32 #define NTSVCS_GET_HW_PROFILE_INFO      0x29
33 #define NTSVCS_GET_VERSION_INTERNAL     0x3e
34
35
36 /**************************/
37
38 typedef struct {
39         /* nothing in the request */
40         uint32 dummy;
41 } NTSVCS_Q_GET_VERSION;
42
43 typedef struct {
44         uint32 version;
45         WERROR status;
46 } NTSVCS_R_GET_VERSION;
47
48
49 /**************************/
50
51 typedef struct {
52         UNISTR2 *devicename;
53         uint32 flags;
54 } NTSVCS_Q_GET_DEVICE_LIST_SIZE;
55
56 typedef struct {
57         uint32 size;
58         WERROR status;
59 } NTSVCS_R_GET_DEVICE_LIST_SIZE;
60
61
62 /**************************/
63
64 typedef struct {
65         UNISTR2 *devicename;
66         uint32 buffer_size;
67         uint32 flags;
68 } NTSVCS_Q_GET_DEVICE_LIST;
69
70 typedef struct {
71         UNISTR2 devicepath;
72         uint32 needed;
73         WERROR status;
74 } NTSVCS_R_GET_DEVICE_LIST;
75
76 /**************************/
77
78 typedef struct {
79         UNISTR2 devicepath;
80         uint32 flags;
81 } NTSVCS_Q_VALIDATE_DEVICE_INSTANCE;
82
83 typedef struct {
84         WERROR status;
85 } NTSVCS_R_VALIDATE_DEVICE_INSTANCE;
86
87 /**************************/
88
89 #define DEV_REGPROP_DESC        1
90
91 typedef struct {
92         UNISTR2 devicepath;
93         uint32 property;
94         uint32 unknown2;
95         uint32 buffer_size1;
96         uint32 buffer_size2;
97         uint32 unknown5;
98 } NTSVCS_Q_GET_DEVICE_REG_PROPERTY;
99
100 typedef struct {
101         uint32 unknown1;
102         REGVAL_BUFFER value;
103         uint32 size;
104         uint32 needed;
105         WERROR status;
106 } NTSVCS_R_GET_DEVICE_REG_PROPERTY;
107
108
109 /**************************/
110
111 typedef struct {
112         uint32 index;
113         uint8 *buffer;
114         uint32 buffer_size;
115         uint32 unknown1;
116 } NTSVCS_Q_GET_HW_PROFILE_INFO;
117
118 typedef struct {
119         uint32 buffer_size;     /* the size (not included in the reply) 
120                                    if just matched from the request */
121         uint8 *buffer;
122         WERROR status;
123 } NTSVCS_R_GET_HW_PROFILE_INFO;
124
125
126 /**************************/
127
128 typedef struct {
129         uint32 unknown1;
130         UNISTR2 devicepath;
131         uint32 unknown2;
132         uint32 unknown3;
133         uint32 unknown4;
134         uint32 unknown5;
135         uint32 unknown6;
136         uint32 unknown7;
137 } NTSVCS_Q_HW_PROFILE_FLAGS;
138
139 typedef struct {
140         uint32 unknown1;
141         uint32 unknown2;
142         uint32 unknown3;
143         WERROR status;
144 } NTSVCS_R_HW_PROFILE_FLAGS;
145
146 #endif /* _RPC_NTSVCS_H */