00001 /* 00002 Unix SMB/CIFS implementation. 00003 SMB parameters and setup 00004 Copyright (C) Gerald (Jerry) Carter 2005 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 */ 00020 00021 #ifndef _RPC_NTSVCS_H /* _RPC_NTSVCS_H */ 00022 #define _RPC_NTSVCS_H 00023 00024 /* ntsvcs pipe */ 00025 00026 #define NTSVCS_GET_VERSION 0x02 00027 #define NTSVCS_VALIDATE_DEVICE_INSTANCE 0x06 00028 #define NTSVCS_GET_ROOT_DEVICE_INSTANCE 0x07 00029 #define NTSVCS_GET_DEVICE_LIST 0x0a 00030 #define NTSVCS_GET_DEVICE_LIST_SIZE 0x0b 00031 #define NTSVCS_GET_DEVICE_REG_PROPERTY 0x0d 00032 #define NTSVCS_HW_PROFILE_FLAGS 0x28 00033 #define NTSVCS_GET_HW_PROFILE_INFO 0x29 00034 #define NTSVCS_GET_VERSION_INTERNAL 0x3e 00035 00036 00037 /**************************/ 00038 00039 typedef struct { 00040 /* nothing in the request */ 00041 uint32 dummy; 00042 } NTSVCS_Q_GET_VERSION; 00043 00044 typedef struct { 00045 uint32 version; 00046 WERROR status; 00047 } NTSVCS_R_GET_VERSION; 00048 00049 00050 /**************************/ 00051 00052 typedef struct { 00053 UNISTR2 *devicename; 00054 uint32 flags; 00055 } NTSVCS_Q_GET_DEVICE_LIST_SIZE; 00056 00057 typedef struct { 00058 uint32 size; 00059 WERROR status; 00060 } NTSVCS_R_GET_DEVICE_LIST_SIZE; 00061 00062 00063 /**************************/ 00064 00065 typedef struct { 00066 UNISTR2 *devicename; 00067 uint32 buffer_size; 00068 uint32 flags; 00069 } NTSVCS_Q_GET_DEVICE_LIST; 00070 00071 typedef struct { 00072 UNISTR2 devicepath; 00073 uint32 needed; 00074 WERROR status; 00075 } NTSVCS_R_GET_DEVICE_LIST; 00076 00077 /**************************/ 00078 00079 typedef struct { 00080 UNISTR2 devicepath; 00081 uint32 flags; 00082 } NTSVCS_Q_VALIDATE_DEVICE_INSTANCE; 00083 00084 typedef struct { 00085 WERROR status; 00086 } NTSVCS_R_VALIDATE_DEVICE_INSTANCE; 00087 00088 /**************************/ 00089 00090 #define DEV_REGPROP_DESC 1 00091 00092 typedef struct { 00093 UNISTR2 devicepath; 00094 uint32 property; 00095 uint32 unknown2; 00096 uint32 buffer_size1; 00097 uint32 buffer_size2; 00098 uint32 unknown5; 00099 } NTSVCS_Q_GET_DEVICE_REG_PROPERTY; 00100 00101 typedef struct { 00102 uint32 unknown1; 00103 REGVAL_BUFFER value; 00104 uint32 size; 00105 uint32 needed; 00106 WERROR status; 00107 } NTSVCS_R_GET_DEVICE_REG_PROPERTY; 00108 00109 00110 /**************************/ 00111 00112 typedef struct { 00113 uint32 index; 00114 uint8 *buffer; 00115 uint32 buffer_size; 00116 uint32 unknown1; 00117 } NTSVCS_Q_GET_HW_PROFILE_INFO; 00118 00119 typedef struct { 00120 uint32 buffer_size; /* the size (not included in the reply) 00121 if just matched from the request */ 00122 uint8 *buffer; 00123 WERROR status; 00124 } NTSVCS_R_GET_HW_PROFILE_INFO; 00125 00126 00127 /**************************/ 00128 00129 typedef struct { 00130 uint32 unknown1; 00131 UNISTR2 devicepath; 00132 uint32 unknown2; 00133 uint32 unknown3; 00134 uint32 unknown4; 00135 uint32 unknown5; 00136 uint32 unknown6; 00137 uint32 unknown7; 00138 } NTSVCS_Q_HW_PROFILE_FLAGS; 00139 00140 typedef struct { 00141 uint32 unknown1; 00142 uint32 unknown2; 00143 uint32 unknown3; 00144 WERROR status; 00145 } NTSVCS_R_HW_PROFILE_FLAGS; 00146 00147 #endif /* _RPC_NTSVCS_H */
1.4.7