Newsgroup: it.comp.programmare.win32
Titolo: Nome file di un processo

per ottenerlo dall'handle o dall'id bisogna fare tutta la trafila con le
funzioni toolhelp?
non c'è una scorciatoia,considerando che opero in kernel-mode ;-)
grazie,ciao

Prova a vedere GetModuleFileName... Ma non sono sicuro... Richiede un
HModule
--- bye

 non c'è una scorciatoia,considerando che opero in kernel-mode ;-)
da un driver o dal debugger?
-- 
  < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
      Don't stand, REACT!      version 0.2.1. C, C++ and ASM developers
                               and beta testers are welcome!

HModule
se passi zero prende il processo corrente.
-- 
Li mortacci a Lycos che ha censurato il sito Papero 1
Per ora il sito Papero 2 è: 
http://user.7host.com/papero/
Un giorno il sito Papero 3 sarà: 
http://members.xoom.it/davidequack

 se passi zero prende il processo corrente.
Sě, ma lui č in Kernel Mode... Ho immaginato stesse scrivendo un driver :-)
Perň in effetti puň provare :-) (provare non costa nulla o quasi)
--- bye

scusate ma, a parte la scemenza di usare le toolhelp quando ci sono funzioni
piu dirette, sono nuovo con i driver :-)
sto hookando zwcreatefile perche ho bisogno di monitorare tutti gli accessi
ad un determinato file
quando ricevo una chiamata al servizio in questione ricevo il pid o l'handle
del processo chiamante tramite psgetcurrentprocess(id) quindi vorrei
ottenere il nome dell'exe corrispondente
pensavo di poterlo fare dal driver stesso piuttosto che rimandare il compito
al programma che "controlla" il driver ma o sbaglio qualcosa o non si puo:
__declspec(dllimport) DWORD
GetModuleFileNameEx(HANDLE,HMODULE,LPTSTR,DWORD);
linko il tutto con psapi.lib e compilo,tutto ok
ma al momento di caricare il driver c'è un errore:impossibile trovare il
file specificato(ma quale file??)
consigli?
nel ddk non mi pare di aver visto funzioni corrispondenti
grazie,ciao
p.s.
approfitto della vostra pazienza:
#pragma pack(push, 1)typedef struct { PVOID  *pServiceTableBase; PULONG
pServiceCounterTableBase; ULONG  cNumberOfServices; PUCHAR
pServiceParamTable;} SSD, *PSSD;#pragma pack(pop)
__declspec(dllimport) SSD KeServiceDescriptorTable[4];
se compilo questo codice in un file c con "#include<ntddk.h>" tutto ok
se lo compilo in un file cpp con "extern "C" {"#include<ntddk.h>}" anche ma
al momento di linkare non trova la tavola dei servizi, potete spiegarmi come
mai?

 file specificato(ma quale file??)
Hai notato che questa funzione non esiste nei SO w9x?
--- bye

 --- bye
ciao

 solo di livello <= ?
Forse devi richiamare la funzione corrispondente a livello kernel (una che
inizi per zw)
--- bye

 --- bye
ciao

 da un driver o dal debugger?
dal driver, vedi post sotto

Non so se hai più culo (nel senso di fortuna) o pigrizia:
http://groups.google.com/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&frame=right&th=69e7764cf7649f8e&seekm=3834D4F9.904DF3F5%40privylink.com.sg#link1
(culo perchè qualcuno aveva fatto la stessa domanda, pigrizia per non
essertela andata a cercare)
E inoltre molto interessante il riferimento in fondo al filemon (un
programma che fa quello che tu vuoi)
--- bye

 Non so se hai più culo (nel senso di fortuna) o pigrizia
la seconda sempre,il mio idolo è il grande lebosky
questa volta anche culo
ciao

 dal driver, vedi post sotto
il nome che vedi nel Task Manager č nella struttura EPROCESS, che non č 
documentata ma piů o meno tutti sanno che forma ha. Russinovich fa bene 
e nella DriverEntry cerca la stringa "System" nell'EPROCESS corrente, e 
cosě facendo si mette al sicuro da modifiche future alla struttura
