Kernel Functions Available to the OAL (Compact 2013)

10/16/2014

The following table shows kernel functions that the OEM adaptation layer (OAL) can use.

Programming element

Description

DeleteCriticalSection

Releases all resources used by a critical section object that is not owned.

EnterCriticalSection

Waits for ownership of the specified critical section object.

FileSystemPowerFunction

Initiates a power-up or power-down sequence for all loaded file-system drivers.

GwesPowerOffSystem

Initiates a power-down or suspend state for the device.

HookInterrupt

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

InitializeCriticalSection

Initializes a critical section object.

InitPubKey

Initializes a public key to use for signature verification.

INTERRUPTS_OFF

Disables all interrupts.

INTERRUPTS_ON

Enables all interrupts.

LeaveCriticalSection

Releases ownership of the specified critical section object.

LoadKernelLibrary

Loads a DLL into the kernel's address space.

NKAcquireOalSpinLock

Acquires an OAL spin lock to protect shared resources.

NKCallIntChain

Determines which chained, or shared, interrupt device triggered an IRQ event.

pfnCallRing0Function

Calls an OEM adaptation layer function that must be run in ring zero.

NKCeLogData

Logs an event, if CeLog is loaded and is capturing standard data.

NKCreateStaticMapping

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

NKDeleteStaticMapping

Deletes the virtual memory allocated by the NKCreateStaticMapping function.

NKFileTimeToSystemTime

Converts file time to system time format.

NKForceCleanBoot

Forces the OS to boot from a clean object store file system when called from the OEMInit function.

NKGetLastError

Returns the last error from the current thread.

NKIsSysIntrValid

Determines whether a particular interrupt identifier (SYSINTR) value is valid.

NKOutputDebugString

Writes a string to the debug monitor port.

NKPhysToVirt

Translates a physical address in memory to a virtual address.

NKrdmsr

Is a C wrapper function for the x86 RDMSR instruction.

NKReboot

Reboots the OS.

NKRegCloseKey

Releases the handle of the specified key.

NKRegCreateKeyExW

Creates a specified key.

NKRegFlushKey

Writes all the attributes of the specified open registry key into the registry.

NKRegOpenKeyExW

Opens the specified key.

NKRegQueryValueExW

Retrieves the type and data for a specified value name associated with an open registry key.

NKRegSetValueExW

Stores data in the value field of an open registry key.

NKSendInterProcessorInterrupt

Sends a platform-specific interprocessor interrupt (IPI) to the specified processor.

NKSetDataAbortHandler

Allows an OEM to replace the default abort handler on an ARM platform.

NKSetInterruptEvent

Allows an OEM to cause an artificial interrupt event.

NKSetLastError

Sets the last error for the current thread.

NKSleep

Suspends the execution of the current thread for a specified interval.

NKSystemTimeToFileTime

Converts system time to file time format.

NKVirtToPhys

Translates a virtual address to a physical address in memory.

NKwrmsr

Is a C wrapper function for the x86 WRMSR instruction.

NotifyWinUserSystem

Notifies the system that a system setting was changed.

PFN_AllocHeapMem

Is a custom allocator function for heaps.

PFN_FreeHeapMem

Is a custom deallocator function for heaps.

PowerOffSystem

Calls the kernel to do the final power-down steps before suspending the device.

SetOOMEvent

Enables enhanced memory management features of Windows Embedded Compact.

UnhookInterrupt

Deregisters an ISR with a specific hardware interrupt.

VirtualSetAttrib

Enables an OEM 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

Reference

OAL Functions