Kernel Functions (Windows Embedded CE 6.0)

1/6/2010

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.

The following table shows the kernel functions common to all platforms.

Function Kernel mode only Description

AllocPhysMem

Yes

Allocates physically contiguous memory.

CacheRangeFlush

Yes

Flushes a specific range of the cache.

CacheSync

Yes

Flushes the cache.

CeGetCacheInfo

Yes

Obtains cache information.

CeGetCurrentTrust

No

Obtains the assigned trust level of a process.This function is obsolete in Windows Embedded CE.

CeGetRandomSeed

No

Obtains a random seed that can be used in an algorithm.

CeSetMemoryAttributes

Yes

Uses memory attributes supported on some hardware platforms that the kernel does not support by default.

CeSetPowerOnEvent

Yes

Signals events during suspend/resume.

CeVirtualSharedAlloc

Yes

Allocates read/write memory to the caller and read-only memory to other processes.

CreateStaticMapping

Yes

Creates a static virtual memory address that maps to a physical address.

CreateWatchDogTimer

No

Creates a watchdog timer.

DrWatsonClear

Yes

Clears Windows Embedded CE error reporting dump storage by setting the Windows Embedded CE error reporting dump area to zero.

DrWatsonFlush

Yes

Flushes Windows Embedded CE error reporting dump data to the underlining storage.

DrWatsonGetSize

Yes

Obtains the size of the Windows Embedded CE error reporting dump area.

DrWatsonReadData

Yes

Reads data from the Windows Embedded CE error reporting dump area.

DrWatsonWriteData

Yes

Writes data to the Windows Embedded CE error reporting dump area.

FileTimeToSystemTime

Yes

Converts file time to the format of system time.

ForcePageout

Yes

Forces the OS to swap out all discardable pages from memory.

FreePhysMem

Yes

Releases physical memory back to the system.

GetCallerProcess

Yes

Obtains a handle for the caller process.

GetCurrentPermissions

No

Obtains the kernel's internal thread permissions bit mask for the current thread.

This function is obsolete in Windows Embedded CE.

GetEPC

Yes

Obtains the interrupted program counter, which is the exception program counter (EPC).

GetEventData

No

Obtains data associated with an event.

GetOwnerProcess

No

Obtains the process handle of the current thread owner.

GetStdioPathW

Yes

Obtains the name of the device driver being used for a standard input, output, or error output operation.

GetSystemMemoryDivision

Yes

Obtains information about the object store and system memory.

This function is obsolete.

GetThreadCallStack

No

Obtains the call stack of an arbitrary thread in the system.

HookInterrupt

Yes

Registers an interrupt service routine (ISR) with the kernel, specifying a hardware interrupt indicated by its interrupt request (IRQ) line value.

InterruptDisable

Yes

Disables a hardware interrupt as specified by its interrupt identifier.

InterruptDone

Yes

Signals to the kernel that interrupt processing has been completed.

InterruptInitialize

Yes

Initializes a hardware interrupt with the kernel. This initialization allows the device driver to register an event and enable the interrupt.

InterruptMask

Yes

Masks hardware interrupts.

INTERRUPTS_ENABLE

Yes

Enables all interrupts based on a parameter and returns the current state.

INTERRUPTS_OFF

Yes

Disables all interrupts.

INTERRUPTS_ON

Yes

Enables all interrupts.

IsAPIReady

No

Indicates whether the specified API has been registered.

This function is obsolete in Windows Embedded CE.

IsNamedEventSignaled

No

Checks whether a named event is signaled.

ISRHandler

Yes

Prototype function used by an OEM or an independent hardware vendor (IHV) to create and export an installable interrupt handler.

KCompareFileTime

Yes

Compares two file time values for equality.

KernelLibIoControl

No

Called by a driver to communicate with an interrupt handler.

LoadDriver

Yes

Maps the specified executable module into the address space of the calling process.

LockPages

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.

MapCallerPtr

Yes

Validates whether a region of memory pointed to by the ptr parameter is valid with respect to the caller process.

This function is obsolete in Windows Embedded CE.

MapPtrToProcess

Yes

Maps an unmapped pointer to a process.

This function is obsolete in Windows Embedded CE.

OpenWatchDogTimer

Yes

Opens an existing watchdog timer.

PageOutModule

Yes

Swaps out all the pages of a process or DLL that are available for paging.

ProfileCaptureStatus

Yes

Queries the OEM profiler after it is running.

ProfilerHit

Yes

Implemented in the kernel and called by the profiler ISR to record a profiling sample.

ProfilerHitEx

Yes

Implemented in the kernel and called by OEM adapatation layer (OAL) code generating interrupts. ProfilerHitEx is called by the profiler ISR to record a profiling sample.

ProfileStart

No

Starts the Windows Embedded CE instrumented kernel or Monte Carlo profiling.

ProfileStartEx

No

Starts the profiler.

ProfileStop

No

Stops the Windows Embedded CE instrumented kernel or Monte Carlo profiling and displays a profile report on a debug terminal.

RefreshWatchDogTimer

Yes

Refreshes a watchdog timer.

SetDbgZone

Yes

Sets or queries zones for either a process or a module, but not both.

SetEventData

No

Associates data with an event handle.

SetInterruptEvent

Yes

Used by a device driver to cause an artificial interrupt event.

SetJITDebuggerPath

Yes

Changes the default Just-in-Time (JIT) debugger dynamically. SetJITDebuggerPath can be called only by a privileged or trusted process.

SetKernelCommDev

Yes

This function is obsolete.

SetKMode

Yes

Switches between kernel and user modes.

This function is obsolete in Windows Embedded CE.

SetProcPermissions

Yes

Sets the internal permissions bit mask for the current thread, thereby enabling access to the address space of another process.

This function is obsolete in Windows Embedded CE.

SetStdioPathW

Yes

Sets the standard input, output, or error output destination path.

SetStoreQueueBase

Yes

Obtains a 1-MB–aligned physical page and returns a pointer to the store queue.

SetSystemMemoryDivision

Yes

Sets the specified number of pages for the object store.

This function is obsolete.

SleepTillTick

No

Suspends the current thread until the next system tick.

StartWatchDogTimer

No

Starts a watchdog timer.

StopWatchDogTimer

No

Stops a watchdog timer.

SystemTimeToFileTime

No

Converts system time to file time format.

UnhookInterrupt

Yes

Deregisters an ISR with a specific hardware interrupt.

UnlockPages

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.

UnMapPtr

Yes

Unmaps a memory pointer that was previously mapped using MapPtrToProcess.

This function is obsolete in Windows Embedded CE.

VirtualCopy

Yes

Binds a specific physical memory range to a statically mapped virtual address.

VirtualSetAttributes

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.

The following table shows additional kernel functions specific to Windows Embedded CE.

Function Kernel mode only Description

WaitForAPIReady

No

Indicates whether the specified API set has been registered. This is a non-polling version of the IsAPIReady function.

The following table shows new kernel functions specific to Windows Embedded CE 6.0.

Function Kernel mode only Description

ForwardDeviceIoControl

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.

GetCallerVMProcessId

No

Obtains the process identifier of the caller that originated the call to the API.

GetDirectCallerProcessId

No

Obtains the direct caller's process identifier.

Remarks

In Windows Embedded CE 6.0, kernel mode means running inside the kernel as a kernel thread. Before CE 6.0, kernel mode essentially meant that you called SetKMode.

See Also

Other Resources

Kernel Reference