wbemprox: Implement Win32_Process.Handle.

This commit is contained in:
Hans Leidekker 2012-06-20 12:06:17 +02:00 committed by Alexandre Julliard
parent d444e1ab1a
commit b39d0c1bdc
2 changed files with 9 additions and 0 deletions

View File

@ -48,6 +48,8 @@ static const WCHAR prop_captionW[] =
{'C','a','p','t','i','o','n',0}; {'C','a','p','t','i','o','n',0};
static const WCHAR prop_descriptionW[] = static const WCHAR prop_descriptionW[] =
{'D','e','s','c','r','i','p','t','i','o','n',0}; {'D','e','s','c','r','i','p','t','i','o','n',0};
static const WCHAR prop_handleW[] =
{'H','a','n','d','l','e',0};
static const WCHAR prop_manufacturerW[] = static const WCHAR prop_manufacturerW[] =
{'M','a','n','u','f','a','c','t','u','r','e','r',0}; {'M','a','n','u','f','a','c','t','u','r','e','r',0};
static const WCHAR prop_modelW[] = static const WCHAR prop_modelW[] =
@ -87,6 +89,7 @@ static const struct column col_process[] =
{ {
{ prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC }, { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_handleW, CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
{ prop_pprocessidW, CIM_UINT32 }, { prop_pprocessidW, CIM_UINT32 },
{ prop_processidW, CIM_UINT32 }, { prop_processidW, CIM_UINT32 },
{ prop_threadcountW, CIM_UINT32 } { prop_threadcountW, CIM_UINT32 }
@ -142,6 +145,7 @@ struct record_process
{ {
const WCHAR *caption; const WCHAR *caption;
const WCHAR *description; const WCHAR *description;
const WCHAR *handle;
UINT32 pprocess_id; UINT32 pprocess_id;
UINT32 process_id; UINT32 process_id;
UINT32 thread_count; UINT32 thread_count;
@ -167,6 +171,8 @@ static const struct record_processor data_processor[] =
static void fill_process( struct table *table ) static void fill_process( struct table *table )
{ {
static const WCHAR fmtW[] = {'%','u',0};
WCHAR handle[11];
struct record_process *rec; struct record_process *rec;
PROCESSENTRY32W entry; PROCESSENTRY32W entry;
HANDLE snap; HANDLE snap;
@ -191,6 +197,8 @@ static void fill_process( struct table *table )
rec = (struct record_process *)(table->data + offset); rec = (struct record_process *)(table->data + offset);
rec->caption = heap_strdupW( entry.szExeFile ); rec->caption = heap_strdupW( entry.szExeFile );
rec->description = heap_strdupW( entry.szExeFile ); rec->description = heap_strdupW( entry.szExeFile );
sprintfW( handle, fmtW, entry.th32ProcessID );
rec->handle = heap_strdupW( handle );
rec->process_id = entry.th32ProcessID; rec->process_id = entry.th32ProcessID;
rec->pprocess_id = entry.th32ParentProcessID; rec->pprocess_id = entry.th32ParentProcessID;
rec->thread_count = entry.cntThreads; rec->thread_count = entry.cntThreads;

View File

@ -23,6 +23,7 @@
#define COL_TYPE_MASK 0x0000ffff #define COL_TYPE_MASK 0x0000ffff
#define COL_FLAG_DYNAMIC 0x00010000 #define COL_FLAG_DYNAMIC 0x00010000
#define COL_FLAG_KEY 0x00020000
struct column struct column
{ {