www.pudn.com > Winmobile.zip > YDControl.cpp
// YDControl.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
// extern "C" BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned);
#define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define CTL_CODE( DeviceType, Function, Method, Access ) ( \
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)
#define FILE_ANY_ACCESS 0
#define METHOD_BUFFERED 0
#define FILE_DEVICE_HAL 0x00000101
#define WIN32_CALL(type, api, args) IMPLICIT_DECL(type, SH_WIN32, W32_ ## api, args)
#define KernelIoControl WIN32_CALL(BOOL, KernelIoControl, (DWORD dwIoControlCode, \
LPVOID lpInBuf, DWORD nInBufSize, \
LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned))
#if defined(MIPS)
#define FIRST_METHOD 0xFFFFFC02
#define APICALL_SCALE 4
#elif defined(x86)
#define FIRST_METHOD 0xFFFFFE00
#define APICALL_SCALE 2
#elif defined(ARM)
#define FIRST_METHOD 0xF0010000
#define APICALL_SCALE 4
#elif defined(SHx)
#define FIRST_METHOD 0xFFFFFE01
#define APICALL_SCALE 2
#else
#error "Unknown CPU type"
#endif
#define HANDLE_SHIFT 8
#define METHOD_MASK 0x00FF
#define HANDLE_MASK 0x003F
#define W32_KernelIoControl 99
#define IMPLICIT_CALL(hid, mid) (FIRST_METHOD - ((hid)<