windows: Add ntdll and bind to more process listing functions.
parent
63050f68e2
commit
c95c0fcc98
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2005, 2006 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien alien.c-types alien.syntax kernel windows.types
|
||||
math multiline classes.struct alien.data arrays ;
|
||||
math multiline classes.struct alien.data arrays literals ;
|
||||
QUALIFIED-WITH: alien.c-types c
|
||||
IN: windows.kernel32
|
||||
|
||||
|
@ -809,6 +809,21 @@ STRUCT: CONSOLE_SCREEN_BUFFER_INFO
|
|||
{ srWindow SMALL_RECT }
|
||||
{ dwMaximumWindowSize COORD } ;
|
||||
|
||||
STRUCT: PROCESSENTRY32
|
||||
{ dwSize DWORD }
|
||||
{ cntUsage DWORD }
|
||||
{ th32ProcessID DWORD }
|
||||
{ th32DefaultHeapID ULONG_PTR }
|
||||
{ th32ModuleID DWORD }
|
||||
{ cntThreads DWORD }
|
||||
{ th32ParentProcessID DWORD }
|
||||
{ pcPriClassBase LONG }
|
||||
{ dwFlags DWORD }
|
||||
{ szExeFile TCHAR[MAX_PATH] } ;
|
||||
|
||||
TYPEDEF: PROCESSENTRY32* PPROCESSENTRY32
|
||||
TYPEDEF: PROCESSENTRY32* LPPROCESSENTRY32
|
||||
|
||||
! Resource IDs
|
||||
: MAKEINTRESOURCE ( int -- resource ) 0xffff bitand <alien> ; inline
|
||||
|
||||
|
@ -1009,7 +1024,16 @@ FUNCTION: HANDLE CreateRemoteThread ( HANDLE hProcess,
|
|||
! FUNCTION: CreateThread
|
||||
! FUNCTION: CreateTimerQueue
|
||||
! FUNCTION: CreateTimerQueueTimer
|
||||
! FUNCTION: CreateToolhelp32Snapshot
|
||||
|
||||
CONSTANT: TH32CS_INHERIT 0x80000000
|
||||
CONSTANT: TH32CS_SNAPHEAPLIST 1
|
||||
CONSTANT: TH32CS_SNAPMODULE 8
|
||||
CONSTANT: TH32CS_SNAPMODULE32 0x10
|
||||
CONSTANT: TH32CS_SNAPPROCESS 2
|
||||
CONSTANT: TH32CS_SNAPTHREAD 4
|
||||
CONSTANT: TH32CS_SNAPALL flags{ TH32CS_SNAPHEAPLIST TH32CS_SNAPMODULE TH32CS_SNAPPROCESS TH32CS_SNAPTHREAD }
|
||||
|
||||
FUNCTION: HANDLE CreateToolhelp32Snapshot ( DWORD dwFlags, DWORD th32ProcessID ) ;
|
||||
! FUNCTION: CreateVirtualBuffer
|
||||
! FUNCTION: CreateWaitableTimerA
|
||||
! FUNCTION: CreateWaitableTimerW
|
||||
|
@ -1642,7 +1666,7 @@ ALIAS: OpenFileMapping OpenFileMappingW
|
|||
! FUNCTION: OpenJobObjectA
|
||||
! FUNCTION: OpenJobObjectW
|
||||
! FUNCTION: OpenMutexA
|
||||
! FUNCTION: OpenMutexW
|
||||
! FUNCTION: OpenMutexW
|
||||
FUNCTION: HANDLE OpenProcess ( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId ) ;
|
||||
! FUNCTION: OpenProfileUserMapping
|
||||
! FUNCTION: OpenSemaphoreA
|
||||
|
@ -1660,9 +1684,11 @@ FUNCTION: HANDLE OpenProcess ( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD
|
|||
! FUNCTION: PrivCopyFileExW
|
||||
! FUNCTION: PrivMoveFileIdentityW
|
||||
! FUNCTION: Process32First
|
||||
! FUNCTION: Process32FirstW
|
||||
FUNCTION: BOOL Process32FirstW ( HANDLE hSnapshot, LPPROCESSENTRY32 lppe ) ;
|
||||
ALIAS: Process32First Process32FirstW
|
||||
! FUNCTION: Process32Next
|
||||
! FUNCTION: Process32NextW
|
||||
FUNCTION: BOOL Process32NextW ( HANDLE hSnapshot, LPPROCESSENTRY32 lppe ) ;
|
||||
ALIAS: Process32Next Process32NextW
|
||||
! FUNCTION: ProcessIdToSessionId
|
||||
! FUNCTION: PulseEvent
|
||||
! FUNCTION: PurgeComm
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Doug Coleman
|
|
@ -0,0 +1,73 @@
|
|||
! Copyright (C) 2013 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: alien.c-types alien.syntax classes.struct windows.types ;
|
||||
IN: windows.ntdll
|
||||
|
||||
LIBRARY: ntdll
|
||||
|
||||
TYPEDEF: uint NTSTATUS
|
||||
|
||||
STRUCT: LSA_UNICODE_STRING
|
||||
{ Length USHORT }
|
||||
{ MaximumLength USHORT }
|
||||
{ Buffer void* } ;
|
||||
TYPEDEF: LSA_UNICODE_STRING* PLSA_UNICODE_STRING
|
||||
TYPEDEF: LSA_UNICODE_STRING UNICODE_STRING
|
||||
TYPEDEF: LSA_UNICODE_STRING* PUNICODE_STRING
|
||||
|
||||
STRUCT: RTL_USER_PROCESS_PARAMETERS
|
||||
{ Reserved1 BYTE[16] }
|
||||
{ Reserved2 PVOID[10] }
|
||||
{ ImagePathName UNICODE_STRING }
|
||||
{ CommandLine UNICODE_STRING } ;
|
||||
TYPEDEF: RTL_USER_PROCESS_PARAMETERS* PRTL_USER_PROCESS_PARAMETERS
|
||||
|
||||
STRUCT: LIST_ENTRY
|
||||
{ Flink LIST_ENTRY* }
|
||||
{ Blink LIST_ENTRY* } ;
|
||||
TYPEDEF: LIST_ENTRY* PLIST_ENTRY
|
||||
|
||||
STRUCT: PEB_LDR_DATA
|
||||
{ Reserved1 BYTE[8] }
|
||||
{ Reserved2 PVOID[3] }
|
||||
{ InMemoryOrderModuleList LIST_ENTRY } ;
|
||||
TYPEDEF: PEB_LDR_DATA* PPEB_LDR_DATA
|
||||
|
||||
TYPEDEF: void* PPS_POST_PROCESS_INIT_ROUTINE
|
||||
|
||||
STRUCT: PEB
|
||||
{ Reserved1 BYTE[2] }
|
||||
{ BeingDebugged BYTE }
|
||||
{ Reserved2 BYTE[1] }
|
||||
{ Reserved3 BYTE[2] }
|
||||
{ Ldr PPEB_LDR_DATA }
|
||||
{ ProcessParameters PRTL_USER_PROCESS_PARAMETERS }
|
||||
{ Reserved4 BYTE[104] }
|
||||
{ Reserved5 PVOID[52] }
|
||||
{ PostProcessInitRoutine PPS_POST_PROCESS_INIT_ROUTINE }
|
||||
{ Reserved6 BYTE[128] }
|
||||
{ Reserved7 PVOID[1] }
|
||||
{ SessionId ULONG } ;
|
||||
TYPEDEF: PEB* PPEB
|
||||
|
||||
! PebBaseAddress is PPEB
|
||||
STRUCT: PROCESS_BASIC_INFORMATION
|
||||
{ Reserved1 PVOID }
|
||||
{ PebBaseAddress void* }
|
||||
{ Reserved2 PVOID[2] }
|
||||
{ UniqueProcessId ULONG_PTR }
|
||||
{ Reserved3 PVOID } ;
|
||||
|
||||
ENUM: PROCESSINFOCLASS
|
||||
{ ProcessBasicInformation 0 }
|
||||
{ ProcessDebugPort 7 }
|
||||
{ ProcessWow64Information 26 }
|
||||
{ ProcessImageFileName 27 } ;
|
||||
|
||||
FUNCTION: NTSTATUS NtQueryInformationProcess (
|
||||
HANDLE ProcessHandle,
|
||||
PROCESSINFOCLASS ProcessInformationClass,
|
||||
PVOID ProcessInformation,
|
||||
ULONG ProcessInformationLength,
|
||||
PULONG ReturnLength
|
||||
) ;
|
|
@ -23,4 +23,5 @@ CONSTANT: MAX_UNICODE_PATH 32768
|
|||
{ "usp10" "usp10.dll" stdcall }
|
||||
{ "psapi" "psapi.dll" stdcall }
|
||||
{ "winmm" "winmm.dll" stdcall }
|
||||
{ "ntdll" "ntdll.dll" stdcall }
|
||||
} [ first3 add-library ] each
|
||||
|
|
Loading…
Reference in New Issue