 |
 |
 |
 |
| Job Objects |
|
joAssignProcessToJobObject(long hJob, long hProcess),
long |
| joCreateJobObject(long
lpJobAttributes, *cstring lpName), long |
| joIsProcessInJob(unsigned
ProcessHandle, unsigned JobHandle, *long Result), long |
| joOpenJobObject(ulong dwDesiredAccess, long
bInheritHandles, *cstring lpName), unsigned |
|
joQueryInformationJobObject(long hJob, long
JobObjectInfoClass, long lpJobObjectInfo, ulong
cbJobObjectInfoLength, <*ulong lpReturnLength>), long |
|
joSetInformationJobObject(long hJob, long
JobObjectInfoClass, long lpJobObjectInfo, ulong
bJobObjectInfoLength), long |
| joTerminateJobObject(long hJob, ulong uExitCode),
long |
| |
| Process enumeration
and handling |
| joCloseHandle(ulong hObject), long, proc |
|
joCreateToolhelp32Snapshot(ulong dwFlags, ulong
th32ProcessID), ulong |
| joProcess32First(ulong hSnapshot, ulong
lpProcEntry32), long |
| joProcess32Next(ulong hSnapshot, ulong
lpProcessEntry32), long |
| |
| Environment and
Session Handling |
|
joCreateEnvironmentBlock(*string lpEnvironment, unsigned
hToken, long bInherit), long |
|
joDestroyEnvironmentBlock(*string lpEnvironment), long,
proc |
| joDuplicateTokenEx(unsigned hExistingToken, ulong
dwDesiredAccess, <*joSECURITY_ATTRIBUTES
lpTokenAttributes>, long ImpersonationLevel, long
TokenType, *unsigned phNewToken), long |
| joGetEnvironment(*cstring), cstring |
|
joWTSEnumerateSessions(unsigned hServer, ulong Reserved,
ulong Version, *long ppSessionInfo, *ulong pCount), long |
| joWTSFreeMemory(long pMemory) |
| joWTSQueryUserToken(ulong SessionId, *unsigned
phToken), long |
| |
| Named Pipes |
| joCreatePipe(long hReadPipe,long hWritePipe, long
lpPipeAttributes,long nSize), ulong, pascal |
|
joSetHandleInformation(unsigned hObject, ulong dwMask,
ulong dwFlags), long, proc |
|
joSetNamedPipeHandleState(unsigned hNamedPipe, *ulong
lpMode, <*ulong lpMaxCollectionCount>, <*ulong
lpCollectDataTimeout>), long, proc |
| joCallNamedPipe(*cstring lpNamedPipeName, *string
lpInBuffer, ulong nInBufferSize, *string lpOutBuffer,
ulong nOutBufferSize, *ulong lpBytesRead, ulong
nTimeOut), long |
| joConnectNamedPipe(unsigned hNamedPipe,
<*joOVERLAPPED lpOverlapped>), unsigned |
| joCreateFile(*cstring lpFileName, ulong
dwDesiredAccess, ulong dwShareMode,
*joSECURITY_ATTRIBUTES lpSecurityAttributes,ulong
dwCreationDisposition, ulong dwFlagsAndAttributes,
unsigned hTemplateFile ), unsigned |
| joCreateNamedPipe(*cstring lpName, ulong dwOpenMode,
ulong dwPipeMode, ulong nMaxInstances, ulong
nOutBufferSize, ulong nInBufferSize, ulong
nDefaultTimeOut, *joSECURITY_ATTRIBUTES
lpSecurityAttributes), long |
|
joDisconnectNamedPipe(unsigned hNamedPipe), long |
|
joGetNamedPipeClientComputerName(unsigned Pipe, *cstring
ClientComputerName, ulong ClientComputerNameLength ),
long |
|
joGetNamedPipeClientProcessId(unsigned Pipe, *ulong
ClientProcessId), long |
|
joGetNamedPipeClientSessionId(unsigned Pipe, *ulong
ClientSessionId), long |
|
joGetNamedPipeHandleState(unsigned hNamedPipe, *ulong
lpState, *ulong lpCurInstances, *ulong
lpMaxCollectionCount, *ulong lpCollectDataTimeout,
*cstring pUserName, ulong nMaxUserNameSize), long |
|
joGetNamedPipeServerProcessId(unsigned Pipe, *ulong
ServerProcessId), long |
|
joGetNamedPipeServerSessionId(unsigned Pipe, *ulong
ServerSessionId), long |
|
joGetOverlappedResult(unsigned hFile, *joOVERLAPPED
lpOverlapped, *ulong lpNumberOfBytesTransferred,long
bWait), long |
| joPeekNamedPipe(unsigned
hNamedPipe, *string lpBuffer, ulong nBufferSize, *ulong
lpBytesRead, *ulong lpTotalBytesAvail, *ulong
lpBytesLeftThisMessage), long |
| joSleepEx(ulong dwMilliseconds, long bAlertable),
ulong |
|
joTransactNamedPipe(unsigned hNamedPipe, *string
lpInBuffer, ulong nInBufferSize, *string lpOutBuffer,
ulong nOutBufferSize, *ulong lpBytesRead, <*joOVERLAPPED
lpOverlapped>), long |
| joWaitNamedPipe(*cstring lpNamedPipeName, ulong
nTimeOut), long |
| |
| Memory Mapped Files |
|
joCreateFileMapping(unsigned hFile,
*joSECURITY_ATTRIBUTES lpAttributes, ulong
flProtect,ulong dwMaximumSizeHigh, ulong
dwMaximumSizeLow, <*cstring lpName>), unsigned |
| joMapViewOfFile(unsigned
hFileMappingObject, ulong dwDesiredAccess, ulong
dwFileOffsetHigh, ulong dwFileOffsetLow, ulong
dwNumberOfBytesToMap), long |
| |
| Windows
Synchronisation Functions |
|
joCreateEvent(*joSECURITY_ATTRIBUTES lpEventAttributes,
long bManualReset, long bInitialState, *cstring lpName),
unsigned |
| joOpenEvent(ulong dwDesiredAccess, long
bInheritHandle, *cstring lpName), unsigned |
| joPulseEvent(unsigned hEvent), long |
| joResetEvent(unsigned hEvent), long |
| joSetEvent(unsigned hEvent), long |
| joWaitForInputIdle(long hProcess, ulong
dwMilliseconds), ulong |
| |
| Windows Messaging
Functions |
| joPostMessage(unsigned hWnd, ulong Msg, ulong
wParam, ulong lParam), long |
|
joRegisterWindowMessage(*cstring lpString), ulong |
| |
| Process Creation
and management |
| joCreateProcess(<*cstring
lpApplicationName>, <*cstring lpCommandLine>, long
lpProcessAttributes, long lpThreadAttributes, byte
bInheritHandles, ulong dwCreationFlags, <*string
lpEnvironment>, <*cstring lpCurrentDirectory>,
*joSTARTUPINFO lpStartupInfo, *joPROCESS_INFORMATION
lpProcessInformation), long |
| ! Identical to
CreateProcess, but params passed as addresses |
| joCreateProcess(ulong lpApplicationName, ulong
lpCommandLine, ulong lpProcessAttributes, ulong
lpThreadAttributes, long bInheritHandles, ulong
dwCreationFlags, long lpEnvironment, ulong
lpCurrentDirectory, ulong lpStartupInfo, ulong
lpProcessInformation), long |
|
joCreateProcessAsUser(unsigned hToken, <*cstring
lpApplicationName>, <*cstring
lpCommandLine>, <*joSECURITY_ATTRIBUTES
lpProcessAttributes>, <*joSECURITY_ATTRIBUTES
lpThreadAttributes>, long bInheritHandles, ulong
dwCreationFlags, <*string lpEnvironment>, <*cstring
lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo,
*joPROCESS_INFORMATION lpProcessInformation), long |
|
joCreateProcessWithLogonW(*cstring lpUsername, <*cstring
lpDomain>, *cstring lpPassword, ulong dwLogonFlags,
<*cstring lpApplicationName>, <*cstring lpCommandLine>,
ulong dwCreationFlags, <*string lpEnvironment>,
<*cstring lpCurrentDirectory>, *joSTARTUPINFO
lpStartupInfo, *jpPROCESS_INFORMATION lpProcessInfo),
long |
|
joCreateProcessWithTokenW(unsigned hToken, ulong
dwLogonFlags, <*cstring lpApplicationName>, <*cstring
lpCommandLine>, <ulong dwCreationFlags>, <*string
lpEnvironment>, <*cstring lpCurrentDirectory>,
*joSTARTUPINFO lpStartupInfo, *joPROCESS_INFORMATION
lpProcessInfo), long |
| joCreateThread(long lpThreadAttributes, ulong
dwStackSize, long lpStartAddress, long lpParameter,
ulong dwCreationFlags, *ulong lpThreadId), long |
| joExitProcess(ulong uExitCode) |
| joLogonUser(*cstring lpszUsername, <*cstring
lpszDomain>, *cstring lpszPassword, ulong dwLogonType,
ulong dwLogonProvider, *unsigned phToken), long |
| joShellExecute(long hwnd, *cstring lpOperation,
*cstring lpFile, *cstring lpParameters, *cstring
lpDirectory, long nShowCmd), long |
| joTerminateProcess(ulong hProcess, ulong uExitcode),
long |
| joWaitForSingleObject(ulong hHandle, ulong
dwMilliseconds), long |
| |
| |
| Process functions |
|
joCreateRemoteThread(unsigned hProcess,
*joSECURITY_ATTRIBUTES lpThreadAttributes, ulong
dwStackSize,long lpStartAddress, long lpParameter, ulong
dwCreationFlags, *ulong lpThreadId), unsigned |
| joGetCurrentProcess(), long, pascal |
|
joGetCurrentProcessId(void), ulong |
|
joGetModuleFileNameEx(unsigned hProcess, unsigned
hModule, *cstring lpFilename, ulong nSize), ulong |
| joGetPriorityClass(unsigned hProcess), ulong |
| joOpenProcess(ulong dwDesiredAccess, long
bInheritHandle, ulong dwProcessId), unsigned |
|
joReadProcessMemory(unsigned hProcess, *string
lpBaseAddress, *string lpBuffer, ulong nSize, *ulong
lpNumberOfBytesRead), long |
| joSetPriorityClass(unsigned hProcess, ulong
dwPriorityClass), long |
|
joSetProcessWorkingSetSize(unsigned hProcess, ulong
dwMinimumWorkingSetSize, ulong dwMaximumWorkingSetSize),
long('SetProcessWorkingSetSize') |
|
joWriteProcessMemory(unsigned hProcess, *string
lpBaseAddress, *string lpBuffer, ulong nSize, *ulong
lpNumberOfBytesWritten), long |
| |
| File IO |
| joReadFile(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToRead, *ulong lpNumberOfBytesRead,
*joOVERLAPPED lpOverlapped), long, pascal |
| joReadFile(unsigned hFile, long lpBuffer, ulong
nNumberOfBytesToRead, long lpNumberOfBytesRead, long
lpOverlapped), long, pascal |
| joWriteFile(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten,
*joOVERLAPPED lpOverlapped), long, pascal |
| joWriteFile(unsigned hFile, long lpBuffer, ulong
nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten,
long lpOverlapped), long, pascal |
| |
| IO Completion port
for asynchronous monitoring |
|
joCreateIoCompletionPort(unsigned FileHandle, unsigned
ExistingCompletionPort, ulong CompletionKey, ulong
NumberOfConcurrentThreads), long |
|
joGetOverlappedResult(unsigned hFile, *OVERLAPPED
lpOverlapped, *ulong lpNumberOfBytesTransferred, long
bWait), long |
|
joGetQueuedCompletionStatus(unsigned CompletionPort,
*ulong lpNumberOfBytes, *ulong lpCompletionKey, long
lpOverlapped, ulong dwMilliseconds), long |
|
joPostQueuedCompletionStatus(unsigned CompletionPort,
ulong dwNumberOfBytesTransferred, ulong
dwCompletionKey, *joOVERLAPPED lpOverlapped), long |
| |
| Extended File IO
function |
| joReadFileEx(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToRead, *joOVERLAPPED lpOverlapped,long
lpCompletionRoutine ), long |
| joWriteFileEx(unsigned hFile, *string lpBuffer,
ulong nNumberOfBytesToWrite, *joOVERLAPPED lpOverlapped,
long lpCompletionRoutine), long |
| |
| Runtime DLL loading |
| joFreeLibrary(ulong hLibModule), bool, proc, pascal |
| joGetProcAddress(ulong hModule, *cstring
lpProcName), ulong, pascal |
| joLoadLibrary(*cstring lpLibFileName), long, pascal |
| joLoadLibrary(long lpLibFileName), long |
| |
| Error checking |
| joFormatMessage(ulong dwFlags, ulong lpSource, ulong
dwMessageId, ulong dwLanguageId, *cstring
lpBuffer, ulong nSize, ulong Arguments), ulong |
| joGetLastError(), ulong |
|
joOutputDebugString(*cstring msg) |
| |
| Terminal Server
Functions |
| joWTSCloseServer(unsigned hServer) |
|
joWTSEnumerateProcesses(unsigned hServer, ulong
Reserved, ulong Version, *joWTS_PROCESS_INFO
ppProcessInfo, *ulong pCount), long |
|
joWTSGetActiveConsoleSessionId(), ulong |
| joWTSOpenServer(*cstring pServerName), unsigned |
|
joWTSQuerySessionInformation(unsigned hServer, ulong
SessionId, long WTSInfoClass, *cstring ppBuffer,
*ulong pBytesReturned), long |
|
joWTSQueryUserConfig(*cstring pServerName,
*cstring pUserName, long WTSConfigClass, *cstring
ppBuffer, *ulong pBytesReturned), long |
| |
| Other API Functions |
| joAccess(*cstring path,short mode), short |
| joAllocConsole(), long |
| joBringWindowToTop(unsigned
hWnd), unsigned, pascal, name('BringWindowToTop') |
| joCallNextHookEx(long hhk, long nCode, long wParam,
long lParam), long |
| joCopyFile(*cstring szFileName, *cstring
szNewFileName, long bFailIfExists), long |
| joCreateDirectory(*cstring lpPathName, long ), long,
pascal |
| joDeleteFile(*cstring szFileName), long,
name('DeleteFileA') |
| joDuplicateHandle(unsigned hSourceProcessHandle,
unsigned hSourceHandle, unsigned hTargetProcessHandle,
*unsigned lpTargetHandle, ulong dwDesiredAccess, long
bInheritHandle, ulong dwOptions), long, pascal |
| joEnumWindows(long
lpEnumFunc, long lParam),proc,pascal,byte,
name('EnumWindows') |
| joExitWindows(ulong
dwReserves, signed uReserved), signed, pascal,
name('ExitWindowsEx') |
|
joFileTimeToLocalFileTime(*joFILETIME lpFileTime,
*joFILETIME lpLocalFileTime), long, pascal |
|
joFileTimeToSystemTime(*joFILETIME lpFileTime,
*joSYSTEMTIME lpSystemTime), long, pascal |
| joFindClose(long hFindFile), long |
| joFindFirstFile(*cstring lpFileName,
*joWIN32_FIND_DATA lpFindFileData), long |
| joFindResource(long hModule, *cstring lpName,
*cstring lpType), long, pascal |
| joFNSplit(*cstring Path, *cstring Drv, *cstring Dir,
*cstring Nme, *cstring Ext), signed, proc |
| joFreeConsole(), long |
| joFreeResource(long
hglbResource), long, pascal, name('FreeResource') |
| joGetComputerName(*cstring pBuffer, *ulong lpnSize),
long, proc, pascal |
| joGetDesktopWindow(), long, pascal |
| joGetDriveType(*cstring lpRootPathName), unsigned,
pascal |
| joGetExitCodeProcess
(unsigned hProcess, ulong lpExitCode), long, pascal,
name('GetExitCodeProcess') |
|
joGetFileTime(unsigned,*joFILETIME, *joFILETIME,
*joFILETIME), long, pascal |
|
joGetModuleFileName(unsigned, *cstring, long), long,
pascal |
| joGetModuleHandle(long), long, pascal |
| joGetModuleUsage(unsigned),
signed, pascal, name('GetModuleUsage') |
| joGetNextWindow(long,
joWORD), long, pascal, name('GetNextWindow') |
| joGetNumTasks(), signed,
pascal, name('GetNumTasks()') |
| joGetStdHandle(long), ulong,PROC, pascal |
| joGetVersion(), ulong,
pascal, name('GetVersion()') |
| joGetVersionEx(ulong), long, pascal |
| joGetWindow(long,
unsigned), long, pascal, name('GetWindow') |
| joGetWindowRect(long, *RECT), long, pascal |
| joGetWindowTask(long),
long, pascal, name('GetWindowTask') |
| joGetWindowText(unsigned, long, signed), signed,
pascal |
|
joGetWindowThreadProcessId(unsigned,*ulong), ulong,
pascal, name('GetWindowThreadProcessId') |
| joGlobalAlloc(unsigned,
ulong), unsigned, pascal, name('GlobalAlloc') |
| joGlobalFree(unsigned),
unsigned,pascal,proc, name('GlobalFree') |
| joGlobalLock(unsigned),
long, pascal, name('GlobalLock') |
|
joGlobalMemoryStatus(*joMEMORYSTATUS), pascal |
| joglobalsize(unsigned),
ulong, pascal, name('GlobalSize') |
| joglobalunlock(unsigned),
long, pascal,proc, name('GlobalUnlock') |
| joIncr(*long), long,pascal,
proc, name('InterlockedIncrement') |
| joInvalidateRect(unsigned
hWnd1, long lpRect, signed bErase), pascal,
name('InvalidateRect') |
| joLoadResource(long, long),
long, pascal, name('LoadResource') |
|
joLocalFileTimeToFileTime(*joFILETIME, *joFILETIME),
long, pascal |
| joLockResource(long),
ulong, pascal, name('LockResource') |
| joLStrCpy(*cstring, long), long,pascal |
| joLtoA(long, *cstring, signed), ulong |
| jomemcpy(long, long,
unsigned), name('_memcpy') |
| jomemset(long, long,
unsigned), name('_memset') |
| joMkDir(*cstring), short |
|
 |
 |
 |
 |
Advanced API Reference
OddJob encapsulates and exposes the following API functions. In most
cases direct access to the API is not neccessary, however these
functions have been provided for those cases where it is needed, as
well as to allow additional functionality outside of the scope of
the classes.
Note that all functions are prefixed by "jo", which the original
APIs do not have. So for example the API function for
joAssignProcessToJobObject is simply AssignProcessToJobObject.
Job Objects
joAssignProcessToJobObject(long hJob, long hProcess), long
joCreateJobObject(long lpJobAttributes, *cstring lpName), long
joIsProcessInJob(unsigned ProcessHandle, unsigned JobHandle, *long
Result), long
joOpenJobObject(ulong dwDesiredAccess, long bInheritHandles,
*cstring lpName), unsigned
joQueryInformationJobObject(long hJob, long JobObjectInfoClass, long
lpJobObjectInfo, ulong cbJobObjectInfoLength, <*ulong
lpReturnLength>), long
joSetInformationJobObject(long hJob, long JobObjectInfoClass, long
lpJobObjectInfo, ulong bJobObjectInfoLength), long
joTerminateJobObject(long hJob, ulong uExitCode), long
Process enumeration and handling
joCloseHandle(ulong hObject), long
joCreateToolhelp32Snapshot(ulong dwFlags, ulong th32ProcessID),
ulong
joProcess32First(ulong hSnapshot, ulong lpProcEntry32), long
joProcess32Next(ulong hSnapshot, ulong lpProcessEntry32), long
Environment and Session Handling
joCreateEnvironmentBlock(*string lpEnvironment, unsigned hToken,
long bInherit), long
joDestroyEnvironmentBlock(*string lpEnvironment), long, proc
joGetEnvironment(*cstring), cstring
joDuplicateTokenEx(unsigned hExistingToken, ulong
dwDesiredAccess, <*joSECURITY_ATTRIBUTES lpTokenAttributes>, long
ImpersonationLevel, long TokenType, *unsigned phNewToken), long
joWTSEnumerateSessions(unsigned hServer, ulong Reserved, ulong
Version, *long ppSessionInfo, *ulong pCount), long
joWTSFreeMemory(long pMemory)
joWTSQueryUserToken(ulong SessionId, *unsigned phToken), long
Named Pipes
joCreatePipe(long hReadPipe,long hWritePipe, long
lpPipeAttributes,long nSize), ulong, pascal
joSetHandleInformation(unsigned hObject, ulong dwMask, ulong
dwFlags), long, proc
joSetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpMode,
<*ulong lpMaxCollectionCount>, <*ulong lpCollectDataTimeout>), long,
proc
joCallNamedPipe(*cstring lpNamedPipeName, *string lpInBuffer, ulong
nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong
lpBytesRead, ulong nTimeOut), long
joConnectNamedPipe(unsigned
hNamedPipe, <*joOVERLAPPED lpOverlapped>), unsigned
joCreateFile(*cstring lpFileName, ulong dwDesiredAccess, ulong
dwShareMode, *joSECURITY_ATTRIBUTES lpSecurityAttributes,ulong
dwCreationDisposition, ulong dwFlagsAndAttributes, unsigned
hTemplateFile ), unsigned
joCreateNamedPipe(*cstring lpName, ulong dwOpenMode, ulong
dwPipeMode, ulong nMaxInstances, ulong nOutBufferSize, ulong
nInBufferSize, ulong nDefaultTimeOut, *joSECURITY_ATTRIBUTES
lpSecurityAttributes), long
joDisconnectNamedPipe(unsigned hNamedPipe), long
joGetNamedPipeClientComputerName(unsigned Pipe, *cstring
ClientComputerName, ulong ClientComputerNameLength ), long
joGetNamedPipeClientProcessId(unsigned Pipe, *ulong
ClientProcessId), long
joGetNamedPipeClientSessionId(unsigned Pipe, *ulong
ClientSessionId), long
joGetNamedPipeHandleState(unsigned hNamedPipe, *ulong lpState,
*ulong lpCurInstances, *ulong lpMaxCollectionCount, *ulong
lpCollectDataTimeout, *cstring pUserName, ulong nMaxUserNameSize),
long
joGetNamedPipeServerProcessId(unsigned Pipe, *ulong
ServerProcessId), long
joGetNamedPipeServerSessionId(unsigned Pipe, *ulong
ServerSessionId), long
joGetOverlappedResult(unsigned hFile, *joOVERLAPPED lpOverlapped,
*ulong lpNumberOfBytesTransferred,long bWait), long
joPeekNamedPipe(unsigned hNamedPipe, *string lpBuffer, ulong
nBufferSize, *ulong lpBytesRead, *ulong lpTotalBytesAvail, *ulong
lpBytesLeftThisMessage), long
joSleepEx(ulong dwMilliseconds, long bAlertable), ulong
joTransactNamedPipe(unsigned hNamedPipe, *string lpInBuffer, ulong
nInBufferSize, *string lpOutBuffer, ulong nOutBufferSize, *ulong
lpBytesRead, <*joOVERLAPPED lpOverlapped>), long
joWaitNamedPipe(*cstring lpNamedPipeName, ulong nTimeOut), long
Memory Mapped Files
joCreateFileMapping(unsigned hFile, *joSECURITY_ATTRIBUTES
lpAttributes, ulong flProtect,ulong dwMaximumSizeHigh, ulong
dwMaximumSizeLow, <*cstring lpName>), unsigned
joMapViewOfFile(unsigned hFileMappingObject, ulong
dwDesiredAccess, ulong dwFileOffsetHigh, ulong dwFileOffsetLow,
ulong dwNumberOfBytesToMap), long
Windows Synchronisation Functions
joCreateEvent(*joSECURITY_ATTRIBUTES lpEventAttributes, long
bManualReset, long bInitialState, *cstring lpName), unsigned
joOpenEvent(ulong dwDesiredAccess, long bInheritHandle, *cstring
lpName), unsigned
joPulseEvent(unsigned hEvent), long
joResetEvent(unsigned hEvent), long
joSetEvent(unsigned hEvent), long
joWaitForInputIdle(long hProcess, ulong dwMilliseconds), ulong
Windows Messaging Functions
joPostMessage(unsigned hWnd, ulong Msg, ulong wParam, ulong lParam),
long
joRegisterWindowMessage(*cstring lpString), ulong
Process Creation and management
joCreateProcess(<*cstring lpApplicationName>, <*cstring
lpCommandLine>, long lpProcessAttributes, long lpThreadAttributes,
byte bInheritHandles, ulong dwCreationFlags, <*string
lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO
lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long
joCreateProcess(ulong lpApplicationName, ulong lpCommandLine, ulong
lpProcessAttributes, ulong lpThreadAttributes, long bInheritHandles,
ulong dwCreationFlags, long lpEnvironment, ulong lpCurrentDirectory,
ulong lpStartupInfo, ulong lpProcessInformation), long
Identical to CreateProcess, but params passed as addresses
joCreateProcessAsUser(unsigned hToken, <*cstring lpApplicationName>,
<*cstring lpCommandLine>, <*joSECURITY_ATTRIBUTES
lpProcessAttributes>, <*joSECURITY_ATTRIBUTES lpThreadAttributes>,
long bInheritHandles, ulong dwCreationFlags, <*string
lpEnvironment>, <*cstring lpCurrentDirectory>, *joSTARTUPINFO
lpStartupInfo, *joPROCESS_INFORMATION lpProcessInformation), long
joCreateProcessWithLogonW(*cstring lpUsername, <*cstring lpDomain>,
*cstring lpPassword, ulong dwLogonFlags, <*cstring
lpApplicationName>, <*cstring lpCommandLine>, ulong dwCreationFlags,
<*string lpEnvironment>, <*cstring lpCurrentDirectory>,
*joSTARTUPINFO lpStartupInfo, *jpPROCESS_INFORMATION lpProcessInfo),
long
joCreateProcessWithTokenW(unsigned hToken, ulong dwLogonFlags,
<*cstring lpApplicationName>, <*cstring lpCommandLine>, <ulong
dwCreationFlags>, <*string lpEnvironment>, <*cstring
lpCurrentDirectory>, *joSTARTUPINFO lpStartupInfo,
*joPROCESS_INFORMATION lpProcessInfo), long
joCreateThread(long lpThreadAttributes, ulong dwStackSize, long
lpStartAddress, long lpParameter, ulong dwCreationFlags, *ulong
lpThreadId), long
joExitProcess(ulong uExitCode)
joLogonUser(*cstring lpszUsername, <*cstring lpszDomain>, *cstring
lpszPassword, ulong dwLogonType, ulong dwLogonProvider, *unsigned
phToken), long
joShellExecute(long hwnd, *cstring lpOperation, *cstring lpFile,
*cstring lpParameters, *cstring lpDirectory, long nShowCmd), long
joTerminateProcess(ulong hProcess, ulong uExitcode), long
joWaitForSingleObject(ulong hHandle,
ulong dwMilliseconds), long
Process functions
joCreateRemoteThread(unsigned hProcess, *joSECURITY_ATTRIBUTES
lpThreadAttributes, ulong dwStackSize,long lpStartAddress, long
lpParameter, ulong dwCreationFlags, *ulong lpThreadId), unsigned
joGetCurrentProcess(), long, pascal
joGetCurrentProcessId(void), ulong
joGetModuleFileNameEx(unsigned hProcess, unsigned hModule, *cstring
lpFilename, ulong nSize), ulong
joGetPriorityClass(unsigned hProcess), ulong
joOpenProcess(ulong dwDesiredAccess, long bInheritHandle, ulong
dwProcessId), unsigned
joReadProcessMemory(unsigned hProcess, *string lpBaseAddress,
*string lpBuffer, ulong nSize, *ulong lpNumberOfBytesRead), long
joSetPriorityClass(unsigned hProcess, ulong dwPriorityClass), long
joSetProcessWorkingSetSize(unsigned hProcess, ulong
dwMinimumWorkingSetSize, ulong dwMaximumWorkingSetSize), long
joWriteProcessMemory(unsigned hProcess, *string lpBaseAddress,
*string lpBuffer, ulong nSize, *ulong lpNumberOfBytesWritten), long
File IO
joReadFile(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToRead, *ulong lpNumberOfBytesRead, *joOVERLAPPED
lpOverlapped), long, pascal
joReadFile(unsigned hFile, long lpBuffer, ulong
nNumberOfBytesToRead, long lpNumberOfBytesRead, long lpOverlapped),
long, pascal
joWriteFile(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, *joOVERLAPPED
lpOverlapped), long, pascal
joWriteFile(unsigned hFile, long lpBuffer, ulong
nNumberOfBytesToWrite, *ulong lpNumberOfBytesWritten, long
lpOverlapped), long, pascal
Asynchronous IO
joCreateIoCompletionPort(unsigned FileHandle, unsigned
ExistingCompletionPort, ulong CompletionKey, ulong
NumberOfConcurrentThreads), long
joGetOverlappedResult(unsigned hFile, *OVERLAPPED lpOverlapped,
*ulong lpNumberOfBytesTransferred, long bWait), long
joGetQueuedCompletionStatus(unsigned CompletionPort, *ulong
lpNumberOfBytes, *ulong lpCompletionKey, long lpOverlapped, ulong
dwMilliseconds), long
joPostQueuedCompletionStatus(unsigned CompletionPort, ulong
dwNumberOfBytesTransferred, ulong dwCompletionKey, *joOVERLAPPED
lpOverlapped), long
Extended File IO function
joReadFileEx(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToRead, *joOVERLAPPED lpOverlapped,long
lpCompletionRoutine ), long
joWriteFileEx(unsigned hFile, *string lpBuffer, ulong
nNumberOfBytesToWrite, *joOVERLAPPED lpOverlapped, long
lpCompletionRoutine), long
Runtime DLL loading
joFreeLibrary(ulong hLibModule), bool, proc, pascal
joGetProcAddress(ulong hModule, *cstring lpProcName), ulong, pascal
joLoadLibrary(*cstring lpLibFileName), long, pascal
joLoadLibrary(long lpLibFileName), long
Error checking
joFormatMessage(ulong dwFlags, ulong lpSource, ulong dwMessageId,
ulong dwLanguageId, *cstring lpBuffer, ulong nSize, ulong
Arguments), ulong
joGetLastError(), ulong
joOutputDebugString(*cstring msg)
Terminal Server Functions
joWTSCloseServer(unsigned hServer)
joWTSEnumerateProcesses(unsigned hServer, ulong Reserved, ulong
Version, *joWTS_PROCESS_INFO ppProcessInfo, *ulong pCount), long
joWTSGetActiveConsoleSessionId(), ulong
joWTSOpenServer(*cstring pServerName), unsigned
joWTSQuerySessionInformation(unsigned hServer, ulong SessionId, long
WTSInfoClass, *cstring ppBuffer, *ulong pBytesReturned), long
joWTSQueryUserConfig(*cstring pServerName, *cstring pUserName,
long WTSConfigClass, *cstring ppBuffer, *ulong pBytesReturned), long
Other API Functions
joAccess(*cstring path,short mode), short
joAllocConsole(), long
joBringWindowToTop(unsigned hWnd), unsigned, pascal,
name('BringWindowToTop')
joCallNextHookEx(long hhk, long nCode, long wParam, long lParam),
long
joCopyFile(*cstring szFileName, *cstring szNewFileName, long
bFailIfExists), long
joCreateDirectory(*cstring lpPathName, long ), long, pascal
joDeleteFile(*cstring szFileName), long, name('DeleteFileA')
joDuplicateHandle(unsigned hSourceProcessHandle, unsigned
hSourceHandle, unsigned hTargetProcessHandle, *unsigned
lpTargetHandle, ulong dwDesiredAccess, long bInheritHandle, ulong
dwOptions), long
joEnumWindows(long lpEnumFunc, long lParam),byte
joExitWindows(ulong dwReserves, signed uReserved), signed
joFileTimeToLocalFileTime(*joFILETIME lpFileTime, *joFILETIME
lpLocalFileTime), long
joFileTimeToSystemTime(*joFILETIME lpFileTime, *joSYSTEMTIME
lpSystemTime), long
joFindClose(long hFindFile), long
joFindFirstFile(*cstring lpFileName, *joWIN32_FIND_DATA
lpFindFileData), long
joFindResource(long hModule, *cstring lpName, *cstring lpType),
long
joFNSplit(*cstring Path, *cstring Drv, *cstring Dir, *cstring
Nme, *cstring Ext), signed
joFreeConsole(), long
joFreeResource(long hglbResource), long
joGetComputerName(*cstring pBuffer, *ulong lpnSize), long
joGetDesktopWindow(), long, pascal
joGetDriveType(*cstring lpRootPathName), unsigned, pascal
joGetExitCodeProcess
(unsigned hProcess, ulong lpExitCode), long
joGetFileTime(unsigned,*joFILETIME, *joFILETIME, *joFILETIME), long
joGetModuleFileName(unsigned, *cstring, long), long
joGetModuleHandle(long), long
joGetModuleUsage(unsigned), signed
joGetNextWindow(long, joWORD), long
joGetNumTasks(), signed
joGetStdHandle(long), ulong
joGetVersion(), ulong
joGetVersionEx(ulong), long
joGetWindow(long, unsigned), long
joGetWindowRect(long, *RECT), long
joGetWindowTask(long), long
joGetWindowText(unsigned, long, signed), signed
joGetWindowThreadProcessId(unsigned,*ulong), ulong
joGlobalAlloc(unsigned, ulong), unsigned
joGlobalFree(unsigned), unsigned
joGlobalLock(unsigned), long
joGlobalMemoryStatus(*joMEMORYSTATUS)
joglobalsize(unsigned), ulong
joglobalunlock(unsigned), long
joIncr(*long), long
joInvalidateRect(unsigned hWnd1, long lpRect, signed bErase)
joLoadResource(long, long), long
joLocalFileTimeToFileTime(*joFILETIME, *joFILETIME), long
joLockResource(long), ulong
joLStrCpy(*cstring, long), long
joLtoA(long, *cstring, signed), ulong
jomemcpy(long, long, unsigned)
jomemset(long, long, unsigned)
joMkDir(*cstring), short
|
 |