Accelerometer API


WEC7 defines a driver model and an API set for 3-axis accelerometers devices which can
be used for various purposes: orientation change, dead reckoning, image stabilization, etc.

The device driver follows the well known MDD/PDD stream interface model: the MDD code is %_WINCEROOT%\public\COMMON\oak\drivers\accelerometer\mdd while
the PDD code is typically HW/BSP dependent(see for example %_WINCEROOT%\platform\IMX313DS\SRC\DRIVERS\ACCELEROMETER).

MSFT provides fake PDD which you can use to experience with the device and its API set: %_WINCEROOT%\public\COMMON\oak\drivers\accelerometer\pdds\mock:
for example you can use the code to emulate the accelerometer in VirtualPC including the DLL in the OS design.

There’s no rule in the makefiles to build the fake accelerometer DLL so need to build it explicitly from the command line or in VS2008;
maybe you’d like to create a DLL subproject in your OS design and include the code (Notice that if you’re building a debug version of
the DLL you need to uncomment the declaration of the dpCurSettings structure to avoid compilation errors).

To include the driver and have it loaded you need to add the relevant entries in .bib and .reg files:

MODULES
fakeaccpdd.dll      $(_FLATRELEASEDIR)\fakeaccpdd.dll     NK  SHK

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ACC]
“Prefix”=”ACC”
“Dll”=”fakeaccpdd.dll”
“Index”=dword:1
“Order”=dword:12
; PMCLASS_GENERIC_DEVICE, Power-manageable sensor, SENSOR_TYPE_ACCELEROMETER_3D
“IClass”=multi_sz:”{A32942B7-920C-486b-B0E6-92A702A99B35}”,
“{3267CC03-F391-4fb1-BADD-36FBB8815E86}”,
“{C2FB0F5F-E2D2-4C78-BCD0-352A9582819D}”

Accelerometer API are basically a wrapper of the accelerometer device driver IOCTL’s; in addition some functions
create a thread used to communicate between the driver and your application. This API is exported by coredll provided that
you include the ‘Accelerometer Driver’ catalog item.

The following sample code demonstrate the use of the accelerometer API:

// NOTE: no error checking, do not use this code in production environment
//
#include <windows.h>
#include <accapi.h>
#include <winioctl.h> //for CTL_CODE 
#include <acc_ioctl.h> //for FILE_DEVICE_ACCELEROMETER (which is not #define'd in winioctl.h)
//From %_WINCEROOT%\public\COMMON\oak\drivers\accelerometer\pdds\mock\accelerometer.h
#define IOCTL_ACC_SEND_SAMPLE    \
    CTL_CODE(FILE_DEVICE_ACCELEROMETER, 0x4000, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_ACC_SIMULATE_ROTATE \
        CTL_CODE(FILE_DEVICE_ACCELEROMETER, 0x4001, METHOD_BUFFERED, FILE_ANY_ACCESS) 
#define ACC_NAME _T("ACC1:")
#define MAX_QUEUE_MESSAGES 10 //arbitrary value
#define RESERVED_PARM NULL
//Check the following files for details about the various struct's and enum's
//%_WINCEROOT%\public\common\oak\inc\sensor.h
//%_WINCEROOT%\public\common\oak\inc\accapi.h
//%_WINCEROOT%\public\COMMON\oak\inc\acc_ioctl.h
DWORD AccCallback(ACC_DATA* pAccData, __in_opt LPVOID plvCallbackParam);
DWORD AccMsgCallback(SENSOR_MESSAGE_TYPE msgType, LPVOID pAccData, DWORD cbSizeAccData, __in_opt LPVOID plvCallbackParam);
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
    LUID AccLuid;
    HSENSOR hSensor;
    MSGQUEUEOPTIONS MsgQueueopt;
 HANDLE hMsgQueue;
    ACC_DATA AccData;
    DWORD dwBytes, dwFlags, i;
    //Retrieve a handle which will be used in the other API calls
    hSensor = AccelerometerOpen(ACC_NAME, &AccLuid);
 
 /*
 Set accelerometer mode.
 Possible modes, according to the docs, are:
 ACC_CONFIG_STREAMING_DATA_MODE
 Default. Streaming data mode. The accelerometer data sample is acquired from accelerometer hardware and is constantly sent back to upper subscribers at a fixed frequency.
 ACC_CONFIG_ORIENTATION_MODE
 Orientation sensing mode. The accelerometer driver only signals the subscriber when an orientation change is detected.
 ACC_CONFIG_COMPASS_MODE
 Compass simulation mode. The accelerometer driver signals the subscriber when a small angle change is detected. This mode is designed for digital compass applications.
 ACC_CONFIG_CALIBRATION_MODE
 Device calibration mode. This mode is used for calibrating the accelerometer hardware.
 */
    AccelerometerSetMode(hSensor, ACC_CONFIG_STREAMING_DATA_MODE, RESERVED_PARM);
 /*
 This IOCTL is defined only for the fake PDD: calling it will result in a serie of sample which
 emulate a rotation on the z axis. If you do not call this IOCTL the driver will return always
    x = 0.7, y = 0.7, z = 0 (notice the '7'...). There's another custom IOCTL
 IOCTL_ACC_SEND_SAMPLE which allows you to inject specific values to the driver which will returned
 back as actual samples
 */
 DeviceIoControl(hSensor, IOCTL_ACC_SIMULATE_ROTATE, NULL, 0, NULL, 0, &dwBytes, NULL);
 //Method #1: 'manually' pass a message queue handle to the accelerometer driver and read
 //the samples from the queue
    MsgQueueopt.dwSize = sizeof(MSGQUEUEOPTIONS);
    MsgQueueopt.dwFlags = MSGQUEUE_ALLOW_BROKEN ;
    MsgQueueopt.dwMaxMessages = MAX_QUEUE_MESSAGES; 
    MsgQueueopt.cbMaxMessage = sizeof(ACC_DATA);
    MsgQueueopt.bReadAccess = TRUE;
    
    hMsgQueue = CreateMsgQueue(NULL, &MsgQueueopt);
 AccelerometerStart(hSensor, hMsgQueue);
    
    for(i=0; i<MAX_QUEUE_MESSAGES; i++)
    {
      WaitForSingleObject(hMsgQueue, INFINITE);
      
      ReadMsgQueue(hMsgQueue, &AccData, sizeof(ACC_DATA), &dwBytes, 0, &dwFlags);
   RETAILMSG(1, (_T("Accelerometer data received\r\n")));
    }
    AccelerometerStop(hSensor);
    
    CloseMsgQueue(hMsgQueue);
 //Method #2: Pass to the accelerometer driver a callback which will be called when new samples
 //are available
 AccelerometerCreateCallback(hSensor, AccCallback, NULL);
 /*Wait a bit so you can see the callback call*/
 Sleep(50);
 //According the docs, AccelerometerCreateCallback calls AccelerometerStart
 //Although it's not stated in the docs, AccelerometerCancelCallback simmetrically
 //calls AccelerometerStop
 //Note: in AccelerometerStop -called by AccelerometerCancelCallback- the message queue used
 //by the driver to sent samples and messages to the subscribers is closed: sometimes you may see 
 //'ERROR: DecodeAPI - invalid handle' due to a reader calling ReadMsgQueue on the queue which
 //has already been closed
 AccelerometerCancelCallback(hSensor);
 //Method #3:  Pass to the accelerometer driver a callback which will be called when new data
 //are available: data can be samples, orientation change, etc.
 AccelerometerCreateMsgCallback(hSensor, AccMsgCallback, NULL);
 /*Wait a bit so you can see the callback call*/
 Sleep(50);
 AccelerometerCancelCallback(hSensor);
    CloseHandle((HANDLE)hSensor);
    return 0;
}
DWORD AccCallback(ACC_DATA* pAccData, __in_opt LPVOID plvCallbackParam)
{
 RETAILMSG(1, (_T("AccCallback Callback\r\n")));
 return 0;
}
DWORD AccMsgCallback(SENSOR_MESSAGE_TYPE msgType, LPVOID pAccData, DWORD cbSizeAccData, __in_opt LPVOID plvCallbackParam)
{
 RETAILMSG(1, (_T("AccMsgCallback Callback\r\n")));
 return 0;
}

The output of a debug build will be something like:

10541593 PID:400002 TID:1bbcb2a +ACC_Open
10541599 PID:400002 TID:1bbcb2a +AccDeviceContext::AddSubscriber
10541599 PID:400002 TID:1bbcb2a -AccDeviceContext::AddSubscriber
10541599 PID:400002 TID:1bbcb2a -ACC_Open
10541600 PID:400002 TID:1bbcb2a +ACC_IOControl
10541600 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541600 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541600 PID:400002 TID:1bbcb2a -ACC_IOControl
10541600 PID:400002 TID:1bbcb2a +ACC_IOControl
10541601 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541601 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541601 PID:400002 TID:1bbcb2a -ACC_IOControl
10541601 PID:400002 TID:1bbcb2a +ACC_IOControl
10541601 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541601 PID:400002 TID:1bbcb2a +AccDeviceContext::Ioctl
10541601 PID:400002 TID:1bbcb2a fakeaccpdd PddIoctl: got IOCTL_ACC_SIM_ROTATE
10541601 PID:400002 TID:1bbcb2a -AccDeviceContext::Ioctl
10541601 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541602 PID:400002 TID:1bbcb2a -ACC_IOControl
10541602 PID:400002 TID:1bbcb2a +ACC_IOControl
10541603 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541604 PID:400002 TID:1bbcb2a +AccSubscriber::StartSensor
10541604 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541604 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541604 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541607 PID:400002 TID:141003e +AccMddProcessSample
10541607 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541608 PID:400002 TID:141003e AccSample: x=0.500000, y=0.500000, z=0.000000
10541608 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541608 PID:400002 TID:1bbcb2a -AccSubscriber::StartSensor
10541608 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541608 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541609 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541609 PID:400002 TID:141003e -AccMddProcessSample
10541609 PID:400002 TID:141003e ACC Polling thread sleeping 11ms
10541609 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541609 PID:400002 TID:1bbcb2a -ACC_IOControl
10541609 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541630 PID:400002 TID:141003e +AccMddProcessSample
10541630 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541630 PID:400002 TID:141003e AccSample: x=1.000000, y=0.000000, z=0.000000
10541630 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541631 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541631 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541631 PID:400002 TID:141003e -AccMddProcessSample
10541632 PID:400002 TID:141003e ACC Polling thread sleeping 8ms
10541632 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541653 PID:400002 TID:141003e +AccMddProcessSample
10541653 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541654 PID:400002 TID:141003e AccSample: x=0.500000, y=-0.500000, z=0.000000
10541654 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541655 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541655 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541655 PID:400002 TID:141003e -AccMddProcessSample
10541655 PID:400002 TID:141003e ACC Polling thread sleeping 5ms
10541655 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541676 PID:400002 TID:141003e +AccMddProcessSample
10541676 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541676 PID:400002 TID:141003e AccSample: x=0.000000, y=-1.000000, z=0.000000
10541677 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541677 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541678 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541678 PID:400002 TID:141003e -AccMddProcessSample
10541678 PID:400002 TID:141003e ACC Polling thread sleeping 2ms
10541679 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541701 PID:400002 TID:141003e +AccMddProcessSample
10541701 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541702 PID:400002 TID:141003e AccSample: x=-0.500000, y=-0.500000, z=0.000000
10541702 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541702 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541702 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541703 PID:400002 TID:141003e -AccMddProcessSample
10541703 PID:400002 TID:141003e ACC Polling thread sleeping 17ms
10541704 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541725 PID:400002 TID:141003e +AccMddProcessSample
10541725 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541725 PID:400002 TID:141003e AccSample: x=-1.000000, y=0.000000, z=0.000000
10541728 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541728 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541728 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541728 PID:400002 TID:141003e -AccMddProcessSample
10541728 PID:400002 TID:141003e ACC Polling thread sleeping 12ms
10541729 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541750 PID:400002 TID:141003e +AccMddProcessSample
10541750 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541751 PID:400002 TID:141003e AccSample: x=-0.500000, y=0.500000, z=0.000000
10541751 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541752 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541752 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541753 PID:400002 TID:141003e -AccMddProcessSample
10541753 PID:400002 TID:141003e ACC Polling thread sleeping 7ms
10541755 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541776 PID:400002 TID:141003e +AccMddProcessSample
10541776 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541776 PID:400002 TID:141003e AccSample: x=0.000000, y=1.000000, z=0.000000
10541776 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541777 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541777 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541777 PID:400002 TID:141003e -AccMddProcessSample
10541778 PID:400002 TID:141003e ACC Polling thread sleeping 2ms
10541778 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541802 PID:400002 TID:141003e +AccMddProcessSample
10541802 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541803 PID:400002 TID:141003e AccSample: x=0.000000, y=0.000000, z=0.000000
10541803 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541804 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541804 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541804 PID:400002 TID:141003e -AccMddProcessSample
10541804 PID:400002 TID:141003e ACC Polling thread sleeping 16ms
10541805 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541826 PID:400002 TID:141003e +AccMddProcessSample
10541826 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541826 PID:400002 TID:141003e AccSample: x=0.000000, y=1.000000, z=0.000000
10541826 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541827 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541827 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541828 PID:400002 TID:141003e -AccMddProcessSample
10541828 PID:400002 TID:141003e ACC Polling thread sleeping 12ms
10541829 PID:1bac872 TID:1bbcb2a Accelerometer data received
10541829 PID:400002 TID:1bbcb2a +ACC_IOControl
10541830 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541830 PID:400002 TID:1bbcb2a +AccSubscriber::StopSensor
10541831 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541831 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541831 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541832 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541832 PID:400002 TID:1bbcb2a -AccSubscriber::StopSensor
10541833 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541833 PID:400002 TID:1bbcb2a -ACC_IOControl
10541834 PID:400002 TID:1bbcb2a +ACC_IOControl
10541834 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541835 PID:400002 TID:1bbcb2a +AccSubscriber::StartSensor
10541835 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541835 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541836 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541836 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541837 PID:400002 TID:1bbcb2a -AccSubscriber::StartSensor
10541837 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541837 PID:400002 TID:1bbcb2a -ACC_IOControl
10541855 PID:400002 TID:141003e +AccMddProcessSample
10541855 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541855 PID:400002 TID:141003e AccSample: x=0.500000, y=0.500000, z=0.000000
10541856 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541856 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541856 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541857 PID:400002 TID:141003e -AccMddProcessSample
10541857 PID:400002 TID:141003e ACC Polling thread sleeping 3ms
10541857 PID:1bac872 TID:10cd82a AccCallback Callback
10541878 PID:400002 TID:141003e +AccMddProcessSample
10541878 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541879 PID:400002 TID:141003e AccSample: x=1.000000, y=0.000000, z=0.000000
10541879 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541879 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541879 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541879 PID:400002 TID:141003e -AccMddProcessSample
10541879 PID:400002 TID:141003e ACC Polling thread sleeping 1ms
10541880 PID:1bac872 TID:10cd82a AccCallback Callback
10541888 PID:400002 TID:1bbcb2a +ACC_IOControl
10541889 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541891 PID:400002 TID:1bbcb2a +AccSubscriber::StopSensor
10541891 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541892 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541892 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541893 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541893 PID:400002 TID:1bbcb2a -AccSubscriber::StopSensor
10541893 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541894 PID:400002 TID:1bbcb2a -ACC_IOControl
10541897 PID:400002 TID:1bbcb2a +ACC_IOControl
10541897 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541897 PID:400002 TID:1bbcb2a +AccSubscriber::StartSensor
10541897 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541897 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541897 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541898 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541898 PID:400002 TID:1bbcb2a -AccSubscriber::StartSensor
10541898 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541898 PID:400002 TID:1bbcb2a -ACC_IOControl
10541905 PID:400002 TID:141003e +AccMddProcessSample
10541905 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541906 PID:400002 TID:141003e AccSample: x=0.500000, y=-0.500000, z=0.000000
10541906 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541907 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541907 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541907 PID:400002 TID:141003e -AccMddProcessSample
10541907 PID:400002 TID:141003e ACC Polling thread sleeping 13ms
10541908 PID:1bac872 TID:108d59e AccMsgCallback Callback
10541929 PID:400002 TID:141003e +AccMddProcessSample
10541929 PID:400002 TID:141003e +AccDeviceContext::ProcessSample
10541929 PID:400002 TID:141003e AccSample: x=0.000000, y=-1.000000, z=0.000000
10541930 PID:400002 TID:141003e +AccSubscriber::NotifySample
10541930 PID:400002 TID:141003e -AccSubscriber::NotifySample
10541930 PID:400002 TID:141003e -AccDeviceContext::ProcessSample
10541930 PID:400002 TID:141003e -AccMddProcessSample
10541930 PID:400002 TID:141003e ACC Polling thread sleeping 10ms
10541930 PID:1bac872 TID:10cd82a AccMsgCallback Callback
10541957 PID:400002 TID:1bbcb2a +ACC_IOControl
10541957 PID:400002 TID:1bbcb2a +AccSubscriber::Ioctl
10541957 PID:400002 TID:1bbcb2a +AccSubscriber::StopSensor
10541957 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541958 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541958 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541959 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541959 PID:400002 TID:1bbcb2a -AccSubscriber::StopSensor
10541960 PID:400002 TID:1bbcb2a -AccSubscriber::Ioctl
10541960 PID:400002 TID:1bbcb2a -ACC_IOControl
10541961 PID:400002 TID:1bbcb2a +ACC_Close
10541961 PID:400002 TID:1bbcb2a +AccDeviceContext::RemoveSubscriber
10541962 PID:400002 TID:1bbcb2a -AccDeviceContext::RemoveSubscriber
10541962 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatedSubscriber
10541962 PID:400002 TID:1bbcb2a +AccDeviceContext::UpdatePddMode
10541962 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatePddInterval
10541963 PID:400002 TID:1bbcb2a -AccDeviceContext::UpdatedSubscriber
10541963 PID:400002 TID:1bbcb2a -ACC_Close
Advertisements
This entry was posted in Windows Embedded Compact and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s