1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

add uint16 support, start to parse more of spoolss

This commit is contained in:
Andrew Tridgell
-
parent 6aa51dc1a5
commit 05fa3ea50a
3 changed files with 49 additions and 1 deletions

View File

@ -304,3 +304,19 @@ BOOL prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 *d
return True; return True;
} }
/*******************************************************************
Stream a uint16.
********************************************************************/
BOOL prs_uint16(char *name, prs_struct *ps, int depth, uint16 *data16)
{
char *q = prs_mem_get(ps, sizeof(uint16));
if (q == NULL)
return False;
DBG_RW_SVAL(name, depth, ps->data_offset, ps->io, ps->bigendian_data, q, *data16)
ps->data_offset += sizeof(uint16);
return True;
}

View File

@ -63,4 +63,5 @@ void dump_data(int level,char *buf1,int len);
BOOL prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 *data16s, int len); BOOL prs_uint16s(BOOL charmode, char *name, prs_struct *ps, int depth, uint16 *data16s, int len);
BOOL prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 *data32s, int len); BOOL prs_uint32s(BOOL charmode, char *name, prs_struct *ps, int depth, uint32 *data32s, int len);
BOOL prs_pointer(char *desc, prs_struct *ps, int depth, void **p); BOOL prs_pointer(char *desc, prs_struct *ps, int depth, void **p);
BOOL prs_uint16(char *name, prs_struct *ps, int depth, uint16 *data16);

View File

@ -1,5 +1,5 @@
module spool module spool
test PRINTER_DRIVER_INFO_LEVEL_3 test SPOOL_NOTIFY_INFO
struct BUFFER5 { struct BUFFER5 {
.align 4; .align 4;
@ -74,3 +74,34 @@ struct PRINTER_DRIVER_INFO {
case 6 PRINTER_DRIVER_INFO_LEVEL_6 info_6; case 6 PRINTER_DRIVER_INFO_LEVEL_6 info_6;
} }
}; };
struct NOTIFY_DATA_VALUE {
uint32 value0;
uint32 value1;
};
struct NOTIFY_DATA_STRING {
uint32 length;
{length} uint16 string;
};
struct SPOOL_NOTIFY_INFO_DATA {
uint16 type;
uint16 field;
uint32 reserved;
uint32 id;
union enc_type *notify_data {
case 1 NOTIFY_DATA_VALUE value;
case 0 NOTIFY_DATA_STRING string;
}
uint32 size;
uint32 enc_type;
};
struct SPOOL_NOTIFY_INFO {
uint32 version;
uint32 flags;
uint32 count;
SPOOL_NOTIFY_INFO_DATA *data;
};