:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / lib / psapi / include / internal / psapi.h
1 /* $Id$
2 */
3 /*
4  * internal/psapi.h
5  *
6  * Process Status Helper API, native interface
7  *
8  * This file is part of the ReactOS Operating System.
9  *
10  * Contributors:
11  *  Created by KJK::Hyperion <noog@libero.it>
12  *
13  *  THIS SOFTWARE IS NOT COPYRIGHTED
14  *
15  *  This source code is offered for use in the public domain. You may
16  *  use, modify or distribute it freely.
17  *
18  *  This code is distributed in the hope that it will be useful but
19  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
20  *  DISCLAMED. This includes but is not limited to warranties of
21  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22  *
23  */
24
25 #ifndef __INTERNAL_PSAPI_H_INCLUDED__
26 #define __INTERNAL_PSAPI_H_INCLUDED__
27
28 /* INCLUDES */
29 #include <ddk/ntddk.h>
30 #include <ntdll/ldr.h>
31
32 /* OBJECTS */
33
34 /* TYPES */
35 typedef NTSTATUS STDCALL (*PPROC_ENUM_ROUTINE)
36 (
37  IN PSYSTEM_PROCESS_INFORMATION CurrentProcess,
38  IN OUT PVOID CallbackContext
39 );
40
41 typedef NTSTATUS STDCALL (*PSYSMOD_ENUM_ROUTINE)
42 (
43  IN ULONG ModuleCount,
44  IN PSYSTEM_MODULE_ENTRY CurrentModule,
45  IN OUT PVOID CallbackContext
46 );
47
48 typedef NTSTATUS STDCALL (*PPROCMOD_ENUM_ROUTINE)
49 (
50  IN HANDLE ProcessHandle,
51  IN PLDR_MODULE CurrentModule,
52  IN OUT PVOID CallbackContext
53 );
54
55 /* CONSTANTS */
56 #define FAILED_WITH_STATUS DEFINE_DBG_MSG("%s() failed, status 0x%08X")
57
58 /* PROTOTYPES */
59 NTSTATUS
60 STDCALL
61 PsaEnumerateProcesses
62 (
63  IN PPROC_ENUM_ROUTINE Callback,
64  IN OUT PVOID CallbackContext
65 );
66
67 NTSTATUS
68 STDCALL
69 PsaEnumerateSystemModules
70 (
71  IN PSYSMOD_ENUM_ROUTINE Callback,
72  IN OUT PVOID CallbackContext
73 );
74
75 NTSTATUS
76 STDCALL
77 PsaEnumerateProcessModules
78 (
79  IN HANDLE ProcessHandle,
80  IN PPROCMOD_ENUM_ROUTINE Callback,
81  IN OUT PVOID CallbackContext
82 );
83
84 /* MACROS */
85 #define DEFINE_DBG_MSG(__str__) "PSAPI: " __str__ "\n"
86
87 #endif /* __INTERNAL_PSAPI_H_INCLUDED__ */
88
89 /* EOF */
90