spoolss: fill in some unknowns in spoolss_OSVersion and spoolss_OSVersionEx.
authorGünther Deschner <gd@samba.org>
Fri, 17 Jul 2009 14:47:48 +0000 (16:47 +0200)
committerGünther Deschner <gd@samba.org>
Fri, 17 Jul 2009 15:20:30 +0000 (17:20 +0200)
Guenther

librpc/gen_ndr/ndr_spoolss.c
librpc/gen_ndr/spoolss.h
librpc/idl/spoolss.idl

index b5d9f1739c9ea36f2ed25b08ce91648a65378940..fedebb2d56149aeda1fbc3f419f1a44e9956d59c 100644 (file)
@@ -14464,7 +14464,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14490,7 +14490,7 @@ _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *nam
        ndr_print_uint32(ndr, "major", r->major);
        ndr_print_uint32(ndr, "minor", r->minor);
        ndr_print_uint32(ndr, "build", r->build);
-       ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
+       ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
        ndr_print_string(ndr, "extra_string", r->extra_string);
        ndr->depth--;
 }
@@ -14520,8 +14520,11 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, in
                        }
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
+               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
+               NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -14536,7 +14539,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, in
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
+               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
                {
                        uint32_t _flags_save_string = ndr->flags;
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
@@ -14548,8 +14551,11 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, in
                        }
                        ndr->flags = _flags_save_string;
                }
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
+               NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
+               NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
        }
        if (ndr_flags & NDR_BUFFERS) {
        }
@@ -14564,10 +14570,13 @@ _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *n
        ndr_print_uint32(ndr, "major", r->major);
        ndr_print_uint32(ndr, "minor", r->minor);
        ndr_print_uint32(ndr, "build", r->build);
-       ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
+       ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
        ndr_print_string(ndr, "extra_string", r->extra_string);
-       ndr_print_uint32(ndr, "unknown2", r->unknown2);
-       ndr_print_uint32(ndr, "unknown3", r->unknown3);
+       ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
+       ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
+       ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
+       ndr_print_uint8(ndr, "product_type", r->product_type);
+       ndr_print_uint8(ndr, "reserved", r->reserved);
        ndr->depth--;
 }
 
index 2575c4d082e110bdc093d618d82f7512fbebed61..1a9d393e093b635e980d8cae2d870b8d20fbd5bb 100644 (file)
@@ -1058,7 +1058,7 @@ struct spoolss_OSVersion {
        uint32_t major;
        uint32_t minor;
        uint32_t build;
-       uint32_t unknown;/* [value(2)] */
+       uint32_t platform_id;/* [value(2)] */
        const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
 }/* [gensize,public] */;
 
@@ -1067,10 +1067,13 @@ struct spoolss_OSVersionEx {
        uint32_t major;
        uint32_t minor;
        uint32_t build;
-       uint32_t unknown1;/* [value(2)] */
+       uint32_t platform_id;/* [value(2)] */
        const char * extra_string;/* [subcontext_size(256),subcontext(0),flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t unknown2;
-       uint32_t unknown3;
+       uint16_t service_pack_major;
+       uint16_t service_pack_minor;
+       uint16_t suite_mask;
+       uint8_t product_type;
+       uint8_t reserved;
 }/* [gensize,public] */;
 
 union spoolss_PrinterData {
index acfb54f923738e08eeacf62b1be799320f227cf5..0c68dffcd19d28ef795187a242a0cc44621975a3 100644 (file)
@@ -1311,7 +1311,7 @@ import "misc.idl", "security.idl", "winreg.idl";
                uint32 major;
                uint32 minor;
                uint32 build;
-               [value(2)] uint32 unknown;
+               [value(2)] uint32 platform_id;
                [subcontext(0),subcontext_size(256)] nstring extra_string;
        } spoolss_OSVersion;
 
@@ -1320,10 +1320,13 @@ import "misc.idl", "security.idl", "winreg.idl";
                uint32 major;
                uint32 minor;
                uint32 build;
-               [value(2)] uint32 unknown1;
+               [value(2)] uint32 platform_id;
                [subcontext(0),subcontext_size(256)] nstring extra_string;
-               uint32 unknown2;/* service pack number? I saw 0 from w2k3 and 1 from winxp sp1*/
-               uint32 unknown3;/* hmm? w2k3: 131346(0x20112) winxp sp1: 503382272 0x1E010100 */
+               uint16 service_pack_major;
+               uint16 service_pack_minor;
+               uint16 suite_mask;
+               uint8 product_type;
+               uint8 reserved;
        } spoolss_OSVersionEx;
 
        typedef [nodiscriminant,public,gensize] union {