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 39typedef struct { 40 /* nothing in the request */ 41 uint32 dummy; 42} NTSVCS_Q_GET_VERSION; 43 44typedef struct { 45 uint32 version; 46 WERROR status; 47} NTSVCS_R_GET_VERSION; 48 49 50/**************************/ 51 52typedef struct { 53 UNISTR2 *devicename; 54 uint32 flags; 55} NTSVCS_Q_GET_DEVICE_LIST_SIZE; 56 57typedef struct { 58 uint32 size; 59 WERROR status; 60} NTSVCS_R_GET_DEVICE_LIST_SIZE; 61 62 63/**************************/ 64 65typedef struct { 66 UNISTR2 *devicename; 67 uint32 buffer_size; 68 uint32 flags; 69} NTSVCS_Q_GET_DEVICE_LIST; 70 71typedef struct { 72 UNISTR2 devicepath; 73 uint32 needed; 74 WERROR status; 75} NTSVCS_R_GET_DEVICE_LIST; 76 77/**************************/ 78 79typedef struct { 80 UNISTR2 devicepath; 81 uint32 flags; 82} NTSVCS_Q_VALIDATE_DEVICE_INSTANCE; 83 84typedef struct { 85 WERROR status; 86} NTSVCS_R_VALIDATE_DEVICE_INSTANCE; 87 88/**************************/ 89 90#define DEV_REGPROP_DESC 1 91 92typedef 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 101typedef 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 112typedef struct { 113 uint32 index; 114 uint8 *buffer; 115 uint32 buffer_size; 116 uint32 unknown1; 117} NTSVCS_Q_GET_HW_PROFILE_INFO; 118 119typedef 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 129typedef 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 140typedef 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 */ 148