The following table shows the kernel functions with a description of the purpose of each and what level modules, application or kernel, can call each function.
| Programming element | Kernel-mode only | Description | 
|---|---|---|
| AllocPhysMem | Yes | This function allocates physically contiguous memory. | 
| CacheRangeFlush | Yes | This function is called by device drivers and applications to flush a specific range of the cache. | 
| CacheSync | Yes | This function flushes the cache. | 
| CeGetCacheInfo | Yes | This function retrieves the cache information. | 
| CeGetCurrentTrust | Yes | This function retrieves the assigned trust level of a process. | 
| CeGetRandomSeed | Yes | This function returns a random seed that can be used in an algorithm. | 
| CeSetMemoryAttributes | Yes | This function provides device drivers and applications a way to use memory attributes supported on some hardware platforms that the kernel does not support by default. | 
| CeSetPowerOnEvent | Yes | Power handlers call this function to signal events during suspend/resume. | 
| CeVirtualSharedAlloc | Yes | This function is used to allocate read/write memory to the caller and to allocate read-only memory to other processes. | 
| CreateStaticMapping | Yes | This function creates a static virtual memory address that maps to a physical address. | 
| CreateWatchDogTimer | Yes | This function creates a watchdog timer. | 
| DrWatsonClear | Yes | This function clears the Windows CE Error Reporting dump storage by zeroing the Windows CE Error Reporting dump area. | 
| DrWatsonFlush | Yes | This function flushes the Windows CE Error Reporting dump data to the underlining storage. | 
| DrWatsonGetSize | Yes | This function retrieves the size of the Windows CE Error Reporting dump area. | 
| DrWatsonReadData | Yes | This function reads data from the Windows CE Error Reporting dump area. | 
| DrWatsonWriteData | Yes | This function writes data to the Windows CE Error Reporting dump area. | 
| ForcePageout | No | This function forces the operating system to swap out all discardable pages from memory. | 
| FreePhysMem | Yes | This function is called to release physical memory back to the system. | 
| GetCallerProcess | Yes | This function returns a handle for the caller process. | 
| GetCurrentPermissions | Yes | This function obtains the kernel's internal thread permissions bitmask for the current thread. | 
| GetEPC | Yes | This function is implemented by the kernel and called by the profiler interrupt service routine (ISR) to get the interrupted program counter, which is the exception program counter (EPC). | 
| GetEventData | No | This function retrieves data associated with an event. | 
| GetOwnerProcess | Yes | This function returns the process handle of the current thread owner. | 
| GetStdioPathW | Yes | This function retrieves the name of the device driver being used for a standard input, output, or error output operation. | 
| GetSystemMemoryDivision | Yes | This function retrieves information from the kernel pertaining to object store and system memory. 
 | 
| GetThreadCallStack | No | This function retrieves the call stack of an arbitrary thread in the system. | 
| HookInterrupt | Yes | This function registers an interrupt service routine (ISR) with the kernel specifying a particular hardware interrupt indicated by its interrupt request (IRQ) line value. | 
| InterruptDisable | Yes | This function disables a hardware interrupt as specified by its interrupt identifier. | 
| InterruptDone | Yes | This function signals to the kernel that interrupt processing has been completed. | 
| InterruptInitialize | Yes | This function initializes a hardware interrupt with the kernel. This initialization allows the device driver to register an event and enable the interrupt. | 
| InterruptMask | Yes | This function masks hardware interrupts. | 
| INTERRUPTS_ENABLE | Yes | This function enables and disables all interrupts based on the argument and returns the current state. | 
| INTERRUPTS_OFF | Yes | This function disables all interrupts. | 
| INTERRUPTS_ON | Yes | This function enables all interrupts. | 
| IsAPIReady | Yes | This function indicates whether the specified application programming interface (API) set has been registered. | 
| IsNamedEventSignaled | No | This function checks if a named event is signaled. | 
| ISRHandler | Yes | This function prototype is used by an OEM/IHV to create and export an installable interrupt handler. | 
| KCompareFileTime | Yes | This function compares two file time values for equality. File time is the specific date and time at which a specified file was created, last accessed, or last written. | 
| KernelIoControl | Yes | This function provides the kernel with a generic I/O control for carrying out I/O operations. | 
| KernelLibIoControl | Yes | This function is called from a driver to communicate with an interrupt handler. | 
| KFileTimeToSystemTime | Yes | This function converts file time to the format of system time. | 
| KSystemTimeToFileTime | Yes | This function converts system time to file time format. | 
| LoadDriver | Yes | This function maps the specified executable module into the address space of the calling process. | 
| LockPages | Yes | This function 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. | 
| MapCallerPtr | Yes | This function validates whether a region of memory pointed to by the ptr parameter is valid with respect to the caller process. | 
| MapPtrToProcess | Yes | This function maps an unmapped pointer to a process. | 
| OpenWatchDogTimer | Yes | This function opens an existing watchdog timer. | 
| PageOutModule | No | This function swaps out all the pages of a process or DLL that are available for paging. | 
| ProfileCaptureStatus | Yes | This function is used by applications to query the OEM profiler after it is running. | 
| ProfilerHit | Yes | This function is implemented in the kernel and is called by the profiler ISR to record a profiling sample. | 
| ProfilerHitEx | Yes | This function is implemented in the kernel, and is called by the OAL code generating interrupts. ProfilerHitEx is called by the profiler ISR to record a profiling sample. | 
| ProfileStart | Yes | This function starts the Windows CE instrumented kernel or Monte Carlo profiling. | 
| ProfileStartEx | Yes | This function is used by applications to start the profiler. | 
| ProfileStop | Yes | This function stops the Windows CE instrumented kernel or Monte Carlo profiling and displays a profile report on a debug terminal. | 
| RefreshWatchDogTimer | Yes | This function refreshes a watchdog timer. | 
| SetDbgZone | Yes | This function is used to set or query zones for either a process or a module, but not both. | 
| SetEventData | No | This function associates data with an event handle. | 
| SetInterruptEvent | Yes | This function allows a device driver to cause an artificial interrupt event. | 
| SetJITDebuggerPath | Yes | This function allows you to change the default JIT debugger dynamically. SetJITDebuggerPath can only be called by a trusted process. | 
| SetKernelCommDev | Yes | This function is obsolete and should not be used. | 
| SetKMode | Yes | This function allows you to switch between kernel and user modes. | 
| SetProcPermissions | Yes | This function sets the internal permissions bitmask for the current thread, thereby enabling access to the address space of another process. | 
| SetStdioPathW | Yes | This function sets the standard input, output, or error output destination path. | 
| SetStoreQueueBase | Yes | This function takes a 1-MB–aligned physical page and returns a pointer to the store queue. | 
| SetSystemMemoryDivision | Yes | This function sets the specified number of pages for the object store. 
 | 
| SleepTillTick | Yes | This function suspends the execution of the current thread until the next system tick. | 
| StartWatchDogTimer | Yes | This function starts a watchdog timer. | 
| StopWatchDogTimer | Yes | This function stops a watchdog timer. | 
| UnhookInterrupt | Yes | This function deregisters an ISR with a specific hardware interrupt. | 
| UnlockPages | Yes | This function unlocks a specified range of pages in the virtual address space of a process, enabling the system to swap the pages out if necessary. | 
| UnMapPtr | Yes | This function unmaps a memory pointer that was previously mapped using MapPtrToProcess. | 
| VirtualCopy | Yes | This function binds a specific physical memory range to a statically mapped virtual address. | 
| VirtualSetAttributes | Yes | This function enables driver developers to change the per-page attributes for a range of virtual memory, which is usually copied from a physical location not known to the kernel. | 
See Also
Send Feedback on this topic to the authors