Windows CE 6.0: User Mode KernelIoControl

Windows CE 6.0: User Mode KernelIoControl
Created by samphung on 11/20/2010 10:54:27 PM

Windows CE 6.0 introduces some new security features including new meaning for User Mode and Kerne... 


Windows CE 6.0 introduces some new security features including new meaning for User Mode and Kernel Mode.   Loosely speaking, Kernel Mode has access to the system’s resources and User Mode is greatly restricted. One of the new restrictions on User Mode code is that calls to KernelIoControl are limited to the following OEMIoControl IOCTLs:

        IOCTL_HAL_GET_CACHE_INFO

        IOCTL_HAL_GET_DEVICE_INFO

        IOCTL_HAL_GET_DEVICEID

        IOCTL_HAL_GET_UUID

        IOCTL_PROCESSOR_INFORMATION

As an OEM you can change this to allow access to other IOCTLs. The default restriction makes a lot of sense for consumer devices, but for closed systems or systems that the OEM wants to provide more functionality, there is a need to provide more IOCTLs for use from User Mode code.

User Mode code accesses these IOCTLS through a new oalioctl.dll. The code for oalioctl.dll is available in %_WINCEROOT%\Public\Common\Oak\Oalioctl, so I won’t publish the code here. But basically it has an IoControl function that has a switch statement which limits access to OEMIoControl(). So to add more IOCTLs, we need to clone the code and change the switch statement.

------------------------------------------------------------------------------------------------------------------

Note:  This article is written by Bruce Eitman, and is posted to the Embedded101 site with Bruce’s permission.

Copyright © 2010 – Bruce Eitman – All Rights Reserved

 

http://geekswithblogs.net/BruceEitman/

 

 

 

 

 

Embedded101 Articles

Click to Expand/Collapse Groups
Skip Navigation Links.
Collapse Windows Embedded Compact (CE)Windows Embedded Compact (CE)
Collapse Compact 7Compact 7
Collapse CE 6.0CE 6.0
Collapse CE 5.0CE 5.0
Collapse Platform Builder & OS DesignPlatform Builder & OS Design
Collapse BSP, OAL & BootloaderBSP, OAL & Bootloader
Collapse RegistryRegistry
Collapse Device DriverDevice Driver
Collapse File SystemFile System
Collapse Application DevelopmentApplication Development
IBW & ICE
Stream Driver with CEDriverWiz rev 0...
Connecting Visual Studio IDE to CE 6...
Platform Builder: Automatically Flus...
Windows CE: Save and Restore the Re...
Windows CE: Stream Interface Driver...
Windows CE: Persisting Registry Chan...
Windows CE: Enhanced BusEnum
Windows CE: Reading a String from th...
Windows CE: Displaying Disk Informa...
Windows CE: Formatting TFAT
Windows CE: C# Application to Format...
Build A Windows Network Projector wi...
Hive-Based Registry for CE 6.0
AutoLaunch for CE 6.0
Hello all
Filter Device Drivers
Asynchronous I/O request support
Configure Flash Storage to Launch Co...
CEDriverWiz Version 2.00 User Manual
CEDriverWiz V2.00: About this releas...
Installing CEDriverWiz for Visual St...
CEDriverWiz Version 2.00: An Example
CEDriverWiz Version 2.00: Using the ...
Collapse Windows Embedded StandardWindows Embedded Standard
Collapse NET Compact FrameworkNET Compact Framework
Windows Phone 7
Misc.
Turkish porno izle video site in rokettubeporno izle