-// open mayu device\r
-bool Engine::open() {\r
- // open mayu m_device\r
-#ifndef NO_DRIVER\r
- m_device = CreateFile(MAYU_DEVICE_FILE_NAME, GENERIC_READ | GENERIC_WRITE,\r
- 0, NULL, OPEN_EXISTING,\r
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);\r
-#endif // !NO_DRIVER\r
-\r
- if (m_device != INVALID_HANDLE_VALUE) {\r
- return true;\r
- }\r
-\r
-#ifndef NO_DRIVER\r
- // start mayud\r
- SC_HANDLE hscm = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);\r
- if (hscm) {\r
- SC_HANDLE hs = OpenService(hscm, MAYU_DRIVER_NAME, SERVICE_START);\r
- if (hs) {\r
- StartService(hs, 0, NULL);\r
- CloseServiceHandle(hs);\r
- m_didMayuStartDevice = true;\r
- }\r
- CloseServiceHandle(hscm);\r
- }\r
-\r
- // open mayu m_device\r
- m_device = CreateFile(MAYU_DEVICE_FILE_NAME, GENERIC_READ | GENERIC_WRITE,\r
- 0, NULL, OPEN_EXISTING,\r
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);\r
-#endif // !NO_DRIVER\r
- return (m_device != INVALID_HANDLE_VALUE);\r
-}\r
-\r
-\r
-// close mayu device\r
-void Engine::close() {\r
- if (m_device != INVALID_HANDLE_VALUE) {\r
-#ifndef NO_DRIVER\r
- CHECK_TRUE( CloseHandle(m_device) );\r
-#endif // !NO_DRIVER\r
- }\r
- m_device = INVALID_HANDLE_VALUE;\r
-}\r