summaryrefslogtreecommitdiff
path: root/source3/include/rpc_ntsvcs.h
blob: 045d9b4e925a75d47949b7aeb9d68103471ed802 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/* 
   Unix SMB/CIFS implementation.
   SMB parameters and setup
   Copyright (C) Gerald (Jerry) Carter        2005
   
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _RPC_NTSVCS_H /* _RPC_NTSVCS_H */
#define _RPC_NTSVCS_H

/* ntsvcs pipe */

#define NTSVCS_GET_VERSION		0x02
#define NTSVCS_VALIDATE_DEVICE_INSTANCE	0x06
#define NTSVCS_GET_ROOT_DEVICE_INSTANCE	0x07
#define NTSVCS_GET_DEVICE_LIST		0x0a
#define NTSVCS_GET_DEVICE_LIST_SIZE	0x0b
#define NTSVCS_GET_DEVICE_REG_PROPERTY	0x0d
#define NTSVCS_HW_PROFILE_FLAGS		0x28
#define NTSVCS_GET_HW_PROFILE_INFO	0x29
#define NTSVCS_GET_VERSION_INTERNAL	0x3e


/**************************/

typedef struct {
	/* nothing in the request */
	uint32 dummy;
} NTSVCS_Q_GET_VERSION;

typedef struct {
	uint32 version;
	WERROR status;
} NTSVCS_R_GET_VERSION;


/**************************/

typedef struct {
	UNISTR2 *devicename;
	uint32 flags;
} NTSVCS_Q_GET_DEVICE_LIST_SIZE;

typedef struct {
	uint32 size;
	WERROR status;
} NTSVCS_R_GET_DEVICE_LIST_SIZE;


/**************************/

typedef struct {
	UNISTR2 *devicename;
	uint32 buffer_size;
	uint32 flags;
} NTSVCS_Q_GET_DEVICE_LIST;

typedef struct {
	UNISTR2 devicepath;
	uint32 needed;
	WERROR status;
} NTSVCS_R_GET_DEVICE_LIST;

/**************************/

typedef struct {
	UNISTR2 devicepath;
	uint32 flags;
} NTSVCS_Q_VALIDATE_DEVICE_INSTANCE;

typedef struct {
	WERROR status;
} NTSVCS_R_VALIDATE_DEVICE_INSTANCE;

/**************************/

#define DEV_REGPROP_DESC	1

typedef struct {
	UNISTR2 devicepath;
	uint32 property;
	uint32 unknown2;
	uint32 buffer_size1;
	uint32 buffer_size2;
	uint32 unknown5;
} NTSVCS_Q_GET_DEVICE_REG_PROPERTY;

typedef struct {
	uint32 unknown1;
	REGVAL_BUFFER value;
	uint32 size;
	uint32 needed;
	WERROR status;
} NTSVCS_R_GET_DEVICE_REG_PROPERTY;


/**************************/

typedef struct {
	uint32 index;
	uint8 *buffer;
	uint32 buffer_size;
	uint32 unknown1;
} NTSVCS_Q_GET_HW_PROFILE_INFO;

typedef struct {
	uint32 buffer_size;	/* the size (not included in the reply) 
				   if just matched from the request */
	uint8 *buffer;
	WERROR status;
} NTSVCS_R_GET_HW_PROFILE_INFO;


/**************************/

typedef struct {
	uint32 unknown1;
	UNISTR2 devicepath;
	uint32 unknown2;
	uint32 unknown3;
	uint32 unknown4;
	uint32 unknown5;
	uint32 unknown6;
	uint32 unknown7;
} NTSVCS_Q_HW_PROFILE_FLAGS;

typedef struct {
	uint32 unknown1;
	uint32 unknown2;
	uint32 unknown3;
	WERROR status;
} NTSVCS_R_HW_PROFILE_FLAGS;

#endif /* _RPC_NTSVCS_H */