/*[subcontext(0),subcontext_size(_ndr_size*2)]*/ nstring_array string;
} spoolss_StringArray;
- typedef [public] struct {
- [value((ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags)-4)/2)] uint32 _ndr_size;
- [subcontext(0),subcontext_size(_ndr_size*2)] nstring_array string;
- } spoolss_StringArray2;
-
typedef struct {
[string,charset(UTF16)] uint16 *driver_name;
} spoolss_AddDriverInfo1;
[relative] nstring *data_file;
[relative] nstring *config_file;
[relative] nstring *help_file;
+ [relative] nstring_array *dependent_files;
[relative] nstring *monitor_name;
[relative] nstring *default_datatype;
- [relative] nstring_array *dependent_files;
[relative] nstring_array *previous_names;
NTTIME driver_date;
hyper driver_version;
const string SPL_ARCH_IA64 = "IA64";
const string SPL_ARCH_X64 = "x64";
- const string SPOOLSS_ARCHITECTURE_ALL = "all";
+ const string SPOOLSS_ARCHITECTURE_ALL = "All";
+ const string SPOOLSS_ARCHITECTURE_ALL_CLUSTER = "AllCluster";
const string SPOOLSS_ARCHITECTURE_NT_X86 = "Windows NT x86";
+ const string SPOOLSS_ARCHITECTURE_IA_64 = "Windows IA64";
+ const string SPOOLSS_ARCHITECTURE_x64 = "Windows x64";
+ const string SPOOLSS_ARCHITECTURE_4_0 = "Windows 4.0";
const string SPOOLSS_DEFAULT_SERVER_PATH = "C:\\WINDOWS\\system32\\spool";
typedef [public,gensize] struct {
uint8 reserved;
} spoolss_OSVersionEx;
- typedef [nodiscriminant,public,gensize] union {
+ typedef [nodiscriminant,public] union {
[case(REG_NONE)];
[case(REG_SZ)] nstring string;
[case(REG_BINARY),flag(NDR_REMAINING)] DATA_BLOB binary;
[relative] nstring *mui_dll;
uint32 ressource_id;
[relative] nstring *display_name;
- uint32 lang_id;
+ uint16 lang_id;
+ uint16 unused;
} spoolss_FormInfo2;
typedef [nodiscriminant,relative_base,public,gensize] union {
/******************/
/* Function: 0x4d */
- WERROR spoolss_SetPrinterDataEx(
+ [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterDataEx(
[in,ref] policy_handle *handle,
- [in] [string,charset(UTF16)] uint16 key_name[],
- [in] [string,charset(UTF16)] uint16 value_name[],
- [in] winreg_Type type,
- [in,ref] [size_is(offered)] uint8 *buffer,
- [in] uint32 offered
+ [in] [string,charset(UTF16)] uint16 key_name[],
+ [in] [string,charset(UTF16)] uint16 value_name[],
+ [in] winreg_Type type,
+ [in] DATA_BLOB data,
+ [in] uint32 _offered
+ );
+ [noopnum,nopull,noprint,public] void __spoolss_SetPrinterDataEx(
+ [in] winreg_Type type,
+ [out,ref,switch_is(type)] spoolss_PrinterData *data
+ );
+ [nopush] WERROR spoolss_SetPrinterDataEx(
+ [in,ref] policy_handle *handle,
+ [in] [string,charset(UTF16)] uint16 key_name[],
+ [in] [string,charset(UTF16)] uint16 value_name[],
+ [in] winreg_Type type,
+ [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
+ [in,value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] uint32 _offered
);
/******************/
/* Function: 0x4e */
- WERROR spoolss_GetPrinterDataEx(
+ [noopnum,noprint,public] WERROR _spoolss_GetPrinterDataEx(
[in,ref] policy_handle *handle,
[in] [string,charset(UTF16)] uint16 key_name[],
[in] [string,charset(UTF16)] uint16 value_name[],
+ [in] uint32 offered,
[out,ref] winreg_Type *type,
- [out,ref] [size_is(offered)] uint8 *buffer,
+ [out,ref] DATA_BLOB *data,
+ [out,ref] uint32 *needed
+ );
+ [noopnum,noprint,public] void __spoolss_GetPrinterDataEx(
+ [in] winreg_Type type,
+ [out,ref,switch_is(type)] spoolss_PrinterData *data
+ );
+ [nopull,nopush,public] WERROR spoolss_GetPrinterDataEx(
+ [in,ref] policy_handle *handle,
+ [in] [string,charset(UTF16)] uint16 key_name[],
+ [in] [string,charset(UTF16)] uint16 value_name[],
[in] uint32 offered,
+ [out,ref] winreg_Type *type,
+ [out,ref,subcontext(4),subcontext_size(offered),switch_is(*type)] spoolss_PrinterData *data,
[out,ref] uint32 *needed
);
[out,ref] uint32 *needed
);
+ typedef [nodiscriminant] union {
+ [case(0)];
+ [case(1)];
+ [default] nstring_array string_array;
+ } spoolss_KeyNames;
+
/******************/
/* Function: 0x50 */
[public] WERROR spoolss_EnumPrinterKey(
[in, ref] policy_handle *handle,
[in] [string,charset(UTF16)] uint16 key_name[],
- [out,ref] [size_is(offered/2)] uint16 *key_buffer,
+ [out,ref] uint32 *_ndr_size,
+ [out,ref,subcontext(0),subcontext_size(*_ndr_size*2),switch_is(*_ndr_size)] spoolss_KeyNames *key_buffer,
[in] uint32 offered,
[out,ref] uint32 *needed
);