mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 04:13:35 +00:00
Changes for compiling with w32api * include/ntos/zwtypes.h (SYSTEM_MODULES): Rename to SYSTEM_MODULE_INFORMATION. Match w32api structure fieldnames. (SYSTEM_MODULE_INFORMATION): Rename to SYSTEM_MODULE_INFORMATION_ENTRY. Match w32api structure fieldnames. * include/epsapi.h: Include <ntos.h>. (PSYSMOD_ENUM_ROUTINE, PsaCaptureSystemModules, PsaWalkSystemModules, PsaWalkFirstSystemModule, PsaWalkNextSystemModule): Use SYSTEM_MODULE_INFORMATION_ENTRY and SYSTEM_MODULE_INFORMATION structures. * lib/epsapi/enum/drivers.c: Use SYSTEM_MODULE_INFORMATION_ENTRY and SYSTEM_MODULE_INFORMATION structures. * lib/psapi/misc/win32.c: Ditto. * ntoskrnl/ldr/loader.c: Ditto. * lib/epsapi/enum/modules.c: Include <ntos.h>. * lib/ntdll/rtl/thread.c: Ditto. * lib/rosrtl/thread/context.c: Ditto. * lib/rosrtl/thread/create.c: Ditto. * lib/rosrtl/thread/stack.c: Ditto. * include/ntos.h: Include "rosrtl/thread.h". * include/structs.h (_BLOB_DEFINED): Rename to __BLOB_T_DEFINED. * include/winsock2.h: Ditto. * include/ntos/obtypes.h (POBJECT_TYPE): Make a pointer to struct _OBJECT_TYPE. (PHANDLE_TABLE): Make a pointer to struct _HANDLE_TABLE. * ntoskrnl/include/internal/mm.h (PSECTION_OBJECT): Make a pointer to struct _SECTION_OBJECT. * ntoskrnl/include/internal/i386/ps.h (PKPCR): Make a pointer to struct _KPCR. svn path=/trunk/; revision=4807
228 lines
4.1 KiB
C
228 lines
4.1 KiB
C
/* $Id: epsapi.h,v 1.3 2003/06/01 14:59:01 chorns Exp $
|
|
*/
|
|
/*
|
|
* epsapi.h
|
|
*
|
|
* Process Status Helper API, native interface
|
|
*
|
|
* This file is part of the ReactOS Operating System.
|
|
*
|
|
* Contributors:
|
|
* Created by KJK::Hyperion <[email protected]>
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef __INTERNAL_PSAPI_H_INCLUDED__
|
|
#define __INTERNAL_PSAPI_H_INCLUDED__
|
|
|
|
/* INCLUDES */
|
|
#define NTOS_MODE_USER
|
|
#include <ntos.h>
|
|
|
|
/* OBJECTS */
|
|
|
|
/* TYPES */
|
|
typedef NTSTATUS NTAPI (*PPROC_ENUM_ROUTINE)
|
|
(
|
|
IN PSYSTEM_PROCESSES CurrentProcess,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
typedef NTSTATUS NTAPI (*PTHREAD_ENUM_ROUTINE)
|
|
(
|
|
IN PSYSTEM_THREADS CurrentThread,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
typedef NTSTATUS NTAPI (*PSYSMOD_ENUM_ROUTINE)
|
|
(
|
|
IN PSYSTEM_MODULE_INFORMATION_ENTRY CurrentModule,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
typedef NTSTATUS NTAPI (*PPROCMOD_ENUM_ROUTINE)
|
|
(
|
|
IN HANDLE ProcessHandle,
|
|
IN PLDR_MODULE CurrentModule,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
/* CONSTANTS */
|
|
#define FAILED_WITH_STATUS DEFINE_DBG_MSG("%s() failed, status 0x%08X")
|
|
|
|
/* PROTOTYPES */
|
|
/* Processes and threads */
|
|
/* enumeration */
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaEnumerateProcessesAndThreads
|
|
(
|
|
IN PPROC_ENUM_ROUTINE ProcessCallback,
|
|
IN OUT PVOID ProcessCallbackContext,
|
|
IN PTHREAD_ENUM_ROUTINE ThreadCallback,
|
|
IN OUT PVOID ThreadCallbackContext
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaEnumerateProcesses
|
|
(
|
|
IN PPROC_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaEnumerateThreads
|
|
(
|
|
IN PTHREAD_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
/* capturing & walking */
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaCaptureProcessesAndThreads
|
|
(
|
|
OUT PSYSTEM_PROCESSES * ProcessesAndThreads
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaWalkProcessesAndThreads
|
|
(
|
|
IN PSYSTEM_PROCESSES ProcessesAndThreads,
|
|
IN PPROC_ENUM_ROUTINE ProcessCallback,
|
|
IN OUT PVOID ProcessCallbackContext,
|
|
IN PTHREAD_ENUM_ROUTINE ThreadCallback,
|
|
IN OUT PVOID ThreadCallbackContext
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaWalkProcesses
|
|
(
|
|
IN PSYSTEM_PROCESSES ProcessesAndThreads,
|
|
IN PPROC_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaWalkThreads
|
|
(
|
|
IN PSYSTEM_PROCESSES ProcessesAndThreads,
|
|
IN PTHREAD_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
PSYSTEM_PROCESSES
|
|
FASTCALL
|
|
PsaWalkFirstProcess
|
|
(
|
|
IN PSYSTEM_PROCESSES ProcessesAndThreads
|
|
);
|
|
|
|
PSYSTEM_PROCESSES
|
|
FASTCALL
|
|
PsaWalkNextProcess
|
|
(
|
|
IN PSYSTEM_PROCESSES CurrentProcess
|
|
);
|
|
|
|
PSYSTEM_THREADS
|
|
FASTCALL
|
|
PsaWalkFirstThread
|
|
(
|
|
IN PSYSTEM_PROCESSES CurrentProcess
|
|
);
|
|
|
|
PSYSTEM_THREADS
|
|
FASTCALL
|
|
PsaWalkNextThread
|
|
(
|
|
IN PSYSTEM_THREADS CurrentThread
|
|
);
|
|
|
|
/* System modules */
|
|
/* enumeration */
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaEnumerateSystemModules
|
|
(
|
|
IN PSYSMOD_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
/* capturing & walking */
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaCaptureSystemModules
|
|
(
|
|
OUT PSYSTEM_MODULE_INFORMATION * SystemModules
|
|
);
|
|
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaWalkSystemModules
|
|
(
|
|
IN PSYSTEM_MODULE_INFORMATION SystemModules,
|
|
IN PSYSMOD_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
PSYSTEM_MODULE_INFORMATION_ENTRY
|
|
FASTCALL
|
|
PsaWalkFirstSystemModule
|
|
(
|
|
IN PSYSTEM_MODULE_INFORMATION SystemModules
|
|
);
|
|
|
|
PSYSTEM_MODULE_INFORMATION_ENTRY
|
|
FASTCALL
|
|
PsaWalkNextSystemModule
|
|
(
|
|
IN PSYSTEM_MODULE_INFORMATION CurrentSystemModule
|
|
);
|
|
|
|
/* Process modules */
|
|
NTSTATUS
|
|
NTAPI
|
|
PsaEnumerateProcessModules
|
|
(
|
|
IN HANDLE ProcessHandle,
|
|
IN PPROCMOD_ENUM_ROUTINE Callback,
|
|
IN OUT PVOID CallbackContext
|
|
);
|
|
|
|
/* Miscellaneous */
|
|
VOID
|
|
NTAPI
|
|
PsaFreeCapture
|
|
(
|
|
IN PVOID Capture
|
|
);
|
|
|
|
/* The user must define these functions. They are called by PSAPI to allocate
|
|
memory. This allows PSAPI to be called from any environment */
|
|
void *PsaiMalloc(SIZE_T size);
|
|
void *PsaiRealloc(void *ptr, SIZE_T size);
|
|
void PsaiFree(void *ptr);
|
|
|
|
/* MACROS */
|
|
#define DEFINE_DBG_MSG(__str__) "PSAPI: " __str__ "\n"
|
|
|
|
#endif /* __INTERNAL_PSAPI_H_INCLUDED__ */
|
|
|
|
/* EOF */
|