======================================================================
System Management Reference
======================================================================
BOOL KernelIoControl( DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned ); |
======================================================================
dwIoControlCode IOCTL_HAL_GET_WAKE_SOURCE
======================================================================
처음 부팅했을 때 함수를 호출 하면 SYSWAKE_UNKNOWN 이 return 되고, sleep 에서 wakeup 할때의 source 를 일반상태에서는 return 한다.
======================================================================
Power Management Functions
======================================================================
DWORD SetSystemPowerState( LPCWSTR psState, 여기 값이 있으면 아래 StateFlags 값이 있어도 무시 된다. DWORD StateFlags, DWORD Options); |
psState
의 string 은
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\State]아래 키에 해당하는 것들이다. (backlightoff, coldreboot, on, reboot, resuming, screenoff, suspend, unattended, useridle)
StateFlags
는 pm.h 헤더에 정의 되어 있다.
위의 레지스트리 키에서 backlightoff의 flags 의 상태가 여기에 해당된다.
ex)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\BacklightOff]
"Flags"=dword:10010000 ; POWER_STATE_ON | POWER_STATE_PASSWORD
● 디바이스 power state 변경
DWORD DevicePowerNotify( PVOID pvDevice, CEDEVICE_POWER_STATE DeviceState, DWORD Flags ); |
● 디바이스 power state 변경
HANDLE SetPowerRequirement( PVOID pvDevice, L"COM1" CEDEVICE_POWER_STATE DeviceState, D0, D1, D2, D3, D4 ULONG DeviceFlags, PVOID pvSystemState, ULONG StateFlags ); DWORD ReleasePowerRequirement( HANDLE hPowerReq ); |
DeviceState : minimum device power state
ex) 만약 백라이트가 unattend 모드에서 D4 를 사용하는데 SetPowerRequirement 함수를 사용하여 D0 로 요청하게 되면 minimum 이 D0 가 되기 때문에 unattend 에서도 D0 를 유지 한다.
이를 해제 하기 위해서는 ReleasePowerRequirement 를 요청하거나 어플리케이션(exe,dll) 이 종료 되면 해제가 된다.
======================================================================
Process and Thread Functions
======================================================================
CeSetThreadPriority 는 0 ~ 255 지정
SetThreadPriority 는 248 ~ 255 사용 가능
'Hello CE,Mobile' 카테고리의 다른 글
WINCE6 프로젝트 시작 (0) | 2013.12.06 |
---|---|
CE 그림파일 확장자 연결 프로그램 등록 (0) | 2013.11.28 |
다른 뱅크의 RAM 영역을 OAL 에 등록하는 방법 (0) | 2013.08.23 |
CeLog 사용 (0) | 2013.08.09 |
Required files may be missing. To resolve the issue, reinstall Platform Builder (0) | 2013.06.19 |