947794bba11eb0a51fe4b31e602b5e2f981bbd5a
[kai/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 2 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, write to the Free Software
18    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20
21 #ifndef _RPC_NTSVCS_H /* _RPC_NTSVCS_H */
22 #define _RPC_NTSVCS_H
23
24 /* ntsvcs pipe */
25
26 #define NTSVCS_GET_VERSION              0x02
27 #define NTSVCS_VALIDATE_DEVICE_INSTANCE 0x06
28 #define NTSVCS_GET_ROOT_DEVICE_INSTANCE 0x07
29 #define NTSVCS_GET_DEVICE_LIST          0x0a
30 #define NTSVCS_GET_DEVICE_LIST_SIZE     0x0b
31 #define NTSVCS_GET_DEVICE_REG_PROPERTY  0x0d
32 #define NTSVCS_HW_PROFILE_FLAGS         0x28
33 #define NTSVCS_GET_HW_PROFILE_INFO      0x29
34 #define NTSVCS_GET_VERSION_INTERNAL     0x3e
35
36
37 /**************************/
38
39 typedef struct {
40         /* nothing in the request */
41         uint32 dummy;
42 } NTSVCS_Q_GET_VERSION;
43
44 typedef struct {
45         uint32 version;
46         WERROR status;
47 } NTSVCS_R_GET_VERSION;
48
49
50 /**************************/
51
52 typedef struct {
53         UNISTR2 *devicename;
54         uint32 flags;
55 } NTSVCS_Q_GET_DEVICE_LIST_SIZE;
56
57 typedef struct {
58         uint32 size;
59         WERROR status;
60 } NTSVCS_R_GET_DEVICE_LIST_SIZE;
61
62
63 /**************************/
64
65 typedef struct {
66         UNISTR2 *devicename;
67         uint32 buffer_size;
68         uint32 flags;
69 } NTSVCS_Q_GET_DEVICE_LIST;
70
71 typedef struct {
72         UNISTR2 devicepath;
73         uint32 needed;
74         WERROR status;
75 } NTSVCS_R_GET_DEVICE_LIST;
76
77 /**************************/
78
79 typedef struct {
80         UNISTR2 devicepath;
81         uint32 flags;
82 } NTSVCS_Q_VALIDATE_DEVICE_INSTANCE;
83
84 typedef struct {
85         WERROR status;
86 } NTSVCS_R_VALIDATE_DEVICE_INSTANCE;
87
88 /**************************/
89
90 #define DEV_REGPROP_DESC        1
91
92 typedef struct {
93         UNISTR2 devicepath;
94         uint32 property;
95         uint32 unknown2;
96         uint32 buffer_size1;
97         uint32 buffer_size2;
98         uint32 unknown5;
99 } NTSVCS_Q_GET_DEVICE_REG_PROPERTY;
100
101 typedef struct {
102         uint32 unknown1;
103         REGVAL_BUFFER value;
104         uint32 size;
105         uint32 needed;
106         WERROR status;
107 } NTSVCS_R_GET_DEVICE_REG_PROPERTY;
108
109
110 /**************************/
111
112 typedef struct {
113         uint32 index;
114         uint8 *buffer;
115         uint32 buffer_size;
116         uint32 unknown1;
117 } NTSVCS_Q_GET_HW_PROFILE_INFO;
118
119 typedef struct {
120         uint32 buffer_size;     /* the size (not included in the reply) 
121                                    if just matched from the request */
122         uint8 *buffer;
123         WERROR status;
124 } NTSVCS_R_GET_HW_PROFILE_INFO;
125
126
127 /**************************/
128
129 typedef struct {
130         uint32 unknown1;
131         UNISTR2 devicepath;
132         uint32 unknown2;
133         uint32 unknown3;
134         uint32 unknown4;
135         uint32 unknown5;
136         uint32 unknown6;
137         uint32 unknown7;
138 } NTSVCS_Q_HW_PROFILE_FLAGS;
139
140 typedef struct {
141         uint32 unknown1;
142         uint32 unknown2;
143         uint32 unknown3;
144         WERROR status;
145 } NTSVCS_R_HW_PROFILE_FLAGS;
146
147 #endif /* _RPC_NTSVCS_H */