Kernel Functions (Compact 2013)
3/28/2014
The following table shows kernel functions with a description of the purpose of each and whether they can be called in kernel mode only.
Function |
Kernel mode only |
Description |
---|---|---|
Yes |
Allocates physically contiguous memory. |
|
Yes |
Flushes a specific range of the cache. |
|
Yes |
Flushes the cache. |
|
No |
Loads the user interface (UI) proxy device driver. |
|
Yes |
Obtains cache information. |
|
No |
Obtains a random seed that can be used in an algorithm. |
|
Yes |
Uses memory attributes supported on some hardware platforms that the kernel does not support by default. |
|
Yes |
Signals events during suspend/resume. |
|
Yes |
Allocates read/write memory to the caller and read-only memory to other processes. |
|
No |
Creates a handle and associates the handle to the specified handle object. |
|
No |
Creates an API set from the list of functions passed as a parameter. |
|
Yes |
Creates a static virtual memory address that maps to a physical address. |
|
No |
Creates a watchdog timer. |
|
No |
Informs the system that the delayed work is complete. |
|
No |
Deletes a static virtual memory address that maps to a physical address. |
|
No |
Signals to begin the queued tasks. |
|
Yes |
Clears Windows Embedded Compact error reporting dump storage by setting the Windows Embedded Compact error reporting dump area to zero. |
|
Yes |
Flushes Windows Embedded Compact error reporting dump data to the underlining storage. |
|
Yes |
Obtains the size of the Windows Embedded Compact error reporting dump area. |
|
Yes |
Reads data from the Windows Embedded Compact error reporting dump area. |
|
Yes |
Writes data to the Windows Embedded Compact error reporting dump area. |
|
Yes |
Forces the OS to swap out all discardable pages from memory. |
|
No |
Enables drivers to forward I/O controls to other drivers when the driver does not know anything about the I/O control so that no validation is performed. The driver that is called into still has the correct direct caller information to perform parameter validation. |
|
Yes |
Releases physical memory back to the system. |
|
No |
Obtains the process identifier of the caller that originated the call to the API. |
|
No |
Obtains the direct caller's process identifier. |
|
Yes |
Obtains the interrupted program counter, which is the exception program counter (EPC). |
|
No |
Obtains data associated with an event. |
|
No |
Obtains the process handle of the current thread owner. |
|
Yes |
Obtains the name of the device driver being used for a standard input, output, or error output operation. |
|
Yes |
Obtains information about the object store and system memory. This function is obsolete. |
|
No |
Obtains the call stack of an arbitrary thread in the system. |
|
Yes |
Registers an interrupt service routine (ISR) with the kernel, specifying a hardware interrupt indicated by its interrupt request (IRQ) line value. |
|
Installs an interrupt handler for inter processor interrupt. |
||
Yes |
Disables a hardware interrupt as specified by its interrupt identifier. |
|
Yes |
Signals to the kernel that interrupt processing has been completed. |
|
Yes |
Initializes a hardware interrupt with the kernel. This initialization allows the device driver to register an event and enable the interrupt. |
|
Yes |
Masks hardware interrupts. |
|
Yes |
Enables all interrupts based on a parameter and returns the current state. |
|
Yes |
Disables all interrupts. |
|
Yes |
Enables all interrupts. |
|
No |
Checks whether a named event is signaled. |
|
Yes |
Prototype function used by an OEM or an independent hardware vendor (IHV) to create and export an installable interrupt handler. |
|
Yes |
Compares two file time values for equality. |
|
No |
Called by a driver to communicate with an interrupt handler. |
|
No |
Allocates memory that can be shared between the ISR and IST. |
|
No |
Frees memory that is allocated by the KLibAllocShareMem function. |
|
No |
Enables or disables unaligned memory access on ARMv6 and later microprocessors. |
|
Yes |
Maps the specified executable module into the address space of the calling process. |
|
Yes |
Locks into memory the specified region of the virtual address space of the process, ensuring that subsequent access to the region does not incur a page fault. |
|
Yes |
Opens an existing watchdog timer. |
|
Yes |
Swaps out all the pages of a process or DLL that are available for paging. |
|
Not applicable |
Prototype for the error handler for the SetAPIErrorHandler function. |
|
Not applicable |
Prototype for the user interface (UI) proxy device driver entry point. |
|
Yes |
Queries the OEM profiler after it is running. |
|
Yes |
Implemented in the kernel and called by the profiler ISR to record a profiling sample. |
|
Yes |
Implemented in the kernel and called by OEM adaptation layer (OAL) code generating interrupts. ProfilerHitEx is called by the profiler ISR to record a profiling sample. |
|
No |
Starts the Windows Embedded Compact instrumented kernel or Monte Carlo profiling. |
|
No |
Starts the profiler. |
|
No |
Stops the Windows Embedded Compact instrumented kernel or Monte Carlo profiling and displays a profile report on a debug terminal. |
|
Yes |
Refreshes a watchdog timer. |
|
No |
Registers an API set. |
|
No |
Registers delayed work items. |
|
Yes |
Registers a second internal method table. |
|
No |
Registers an error handler for a Program Static Library (PSL). |
|
Yes |
Sets or queries zones for either a process or a module, but not both. |
|
No |
Associates data with an event handle. |
|
Yes |
Used by a device driver to cause an artificial interrupt event. |
|
Yes |
Changes the default Just-in-Time (JIT) debugger dynamically. SetJITDebuggerPath can be called only by a privileged or trusted process. |
|
Yes |
Sets the standard input, output, or error output destination path. |
|
Yes |
Sets the specified number of pages for the object store. This function is obsolete. |
|
No |
Suspends the current thread until the next system tick. |
|
No |
Starts a watchdog timer. |
|
No |
Stops a watchdog timer. |
|
Yes |
Deregisters an ISR with a specific hardware interrupt. |
|
Yes |
Unlocks a specified range of pages in the virtual address space of a process, enabling the system to swap the pages out if necessary. |
|
Yes |
Binds a specific physical memory range to a statically mapped virtual address. |
|
Yes |
Changes the per-page attributes for a range of virtual memory, which is usually copied from a physical location not known to the kernel. |
|
No |
Indicates whether the specified API set has been registered. |
Remarks
Kernel mode means running inside the kernel as a kernel thread. Before Compact 2013, kernel mode essentially meant that you called SetKMode.