diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/ControlWorkerThread.cpp" "b/\351\251\261\345\212\250\345\267\245\345\205\267/ControlWorkerThread.cpp" index 7ab51dd..6632ba4 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/ControlWorkerThread.cpp" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/ControlWorkerThread.cpp" @@ -30,7 +30,6 @@ wxThread::ExitCode CControlWorkerThread::Entry() case INSTALL: if (sc.InstallService() != TRUE) { - //strNotify.Format(wxT("´íÎó´úÂ룺%lu,%s"), sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); swprintf_s(buff, L"´íÎó´úÂ룺%lu,%s", sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); strNotify = buff; } @@ -43,7 +42,6 @@ wxThread::ExitCode CControlWorkerThread::Entry() case START: if (sc.RunService() != TRUE) { - //strNotify.Format(wxT("´íÎó´úÂ룺%lu,%s"), sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); swprintf_s(buff, L"´íÎó´úÂ룺%lu,%s", sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); strNotify = buff; } @@ -56,7 +54,6 @@ wxThread::ExitCode CControlWorkerThread::Entry() case STOP: if (sc.StopService() != TRUE) { - //strNotify.Format(wxT("´íÎó´úÂ룺%lu,%s"), sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); swprintf_s(buff, L"´íÎó´úÂ룺%lu,%s", sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); strNotify = buff; } @@ -69,7 +66,6 @@ wxThread::ExitCode CControlWorkerThread::Entry() case UNINSTALL: if (sc.UnInstallService() != TRUE) { - //strNotify.Format(wxT("´íÎó´úÂ룺%lu,%s"), sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); swprintf_s(buff, L"´íÎó´úÂ룺%lu,%s", sc.GetErrorCode(), sc.GetErrorStr(sc.GetErrorCode())); strNotify = buff; } diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.cpp" "b/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.cpp" index ba8f130..eaf3977 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.cpp" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.cpp" @@ -22,9 +22,7 @@ wxBEGIN_EVENT_TABLE(CDriverToolFrame, wxFrame) EVT_BUTTON(ID_BTN_UNINSTALL, CDriverToolFrame::OnUnInstall) EVT_THREAD(THREAD_SERVER_CONTROL_COMPLETE, CDriverToolFrame::OnServiceControlComplete) EVT_CHECKBOX(ID_CHK_WINDOWTOP, CDriverToolFrame::OnWindowTop) - //EVT_BUTTON(ID_BTN_MORE, CDriverToolFrame::OnShowExtendFrame) EVT_DROP_FILES(CDriverToolFrame::OnDropFile) - //EVT_MOVE(OnWindowMove) EVT_COLLAPSIBLEPANE_CHANGED(ID_COLLAPSIBLEPANE, OnCollapsiblePaneExpand) //ExtPandFirst @@ -83,6 +81,7 @@ wxBEGIN_EVENT_TABLE(CDriverToolFrame, wxFrame) //Second Panel EVT_TEXT(ID_EDTSHOWIOCTL, OnIoctlCodeChange) + EVT_TEXT(ID_EDTSHOWMNEMONIC, OnIoctlMnemonicChange) EVT_SPIN(ID_SPIL_DEVICETYPE, OnSpinClick) EVT_SPIN(ID_SPIL_FUNCTION, OnSpinClick) EVT_SPIN(ID_SPIL_METHOD, OnSpinClick) @@ -99,7 +98,7 @@ std::map g_GUIDMap; SetIcon(wxICON(icon)); CreateStatusBar(); SetStatusText(wxT("»¶Ó­Ê¹ÓÃ")); - //m_pPanel = new wxPanel(this, wxID_ANY); + this->SetBackgroundColour(wxColor(255, 255, 255)); this->DragAcceptFiles(true); @@ -154,11 +153,7 @@ std::map g_GUIDMap; m_pOtherBoxSizer = new wxStaticBoxSizer(wxHORIZONTAL, this, wxT("½ø¶ÈÌõ")); - //m_pBtnMore = new wxButton(this, ID_BTN_MORE, wxT("¸ü¶à")); - //m_pOtherBoxSizer->Add(m_pBtnMore, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); - m_pGauge = new wxGauge(this, ID_GAUGE, 100); - //m_pGauge->Pulse(); m_pOtherBoxSizer->Add(m_pGauge, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5); //Extend Panel @@ -171,9 +166,6 @@ std::map g_GUIDMap; InitCollapsiblePane(); - //m_pExtendFrame = new CExtendedFrame(this, ID_EXTEND_FRAME, wxT("¸ü¶à")); - //m_pExtendFrame->Show(false); - this->SetSizer(m_pMainBoxSizer); m_pMainBoxSizer->SetMinSize(wxSize(600, 300)); m_pMainBoxSizer->SetSizeHints(this); @@ -201,12 +193,6 @@ void CDriverToolFrame::OnSelectFile(wxCommandEvent & event) wxString szPath = fileDialog.GetPath(); m_pEdtDriverPath->SetLabelText(szPath); - - //CServiceControl sc; - - //wxWidgets û°ì·¨×ÔÓÉ·¢ÏûÏ¢£¬Òò´ËÈ«²¿¸ÄΪÒì²½µ÷Óà - //m_pExtendFrame->SetServiceName(wxString(sc.FindServiceName(szPath.c_str()))); - //m_pExtendFrame->CallAfter(&CExtendedFrame::OnUpdateInfo); } while (0); } @@ -477,23 +463,9 @@ void CDriverToolFrame::OnFilterDriverNotify(wxCommandEvent & event) { szItem = p; serviceArray.Add(szItem); - /* - if (!_tcsicmp(m_szServiceName.c_str(), p)) - { - bFind = true; - break; - } - */ p += szItem.Length() + 1; } - /* - if (bFind == false) - { - //ûÕÒµ½£¬±¾À´¾ÍûÓÐ - break; - } - */ auto iter = serviceArray.begin(); for (; iter != serviceArray.end();) { @@ -519,20 +491,7 @@ void CDriverToolFrame::OnFilterDriverNotify(wxCommandEvent & event) p += 1; length += 1; } - //memcpy(p, p + _tcslen(p) + 1, dwRetSize - (p + _tcslen(p) + 1 - szDriverList)); - /* - p = szDriverList; - while (*p != 0) - { - if (!_tcsicmp(m_szServiceName.c_str(), p)) - { - bFind = true; - break; - } - p += _tcslen(p) + 1; - } - */ ulRet = RegSetValueEx(hMainKey, TEXT("UpperFilters"), 0, REG_MULTI_SZ, (CONST BYTE*)szDriverList, length * sizeof(TCHAR)); if (ulRet != ERROR_SUCCESS) { @@ -559,21 +518,6 @@ void CDriverToolFrame::OnFilterDriverNotify(wxCommandEvent & event) } } -/* -void CDriverToolFrame::OnShowExtendFrame(wxCommandEvent & event) -{ - wxRect rect = this->GetRect(); - wxPoint point; - point.x = rect.GetRight(); - point.y = rect.GetTop(); - - m_pExtendFrame->Move(point); - m_pExtendFrame->Show(true); - - m_pExtendFrame->CallAfter(&CExtendedFrame::OnUpdateInfo); -} -*/ - void CDriverToolFrame::DisableAllButton() { if (m_pBtnInstall != NULL) @@ -642,9 +586,6 @@ void CDriverToolFrame::OnDropFile(wxDropFilesEvent & event) if (event.GetNumberOfFiles() > 0) { m_pEdtDriverPath->SetLabelText(event.GetFiles()[0]); - //CServiceControl sc; - //m_pExtendFrame->SetServiceName(wxString(sc.FindServiceName(event.GetFiles()[0].c_str()))); - //m_pExtendFrame->CallAfter(&CExtendedFrame::OnUpdateInfo); } @@ -759,6 +700,19 @@ void CDriverToolFrame::OnIoctlCodeChange(wxCommandEvent & event) UpdateIoctlInfo(ioctlInfo); } +void CDriverToolFrame::OnIoctlMnemonicChange(wxCommandEvent & event) +{ + static wxString strLastData = wxT(""); + wxString strtemp; + strtemp = m_pEdtMnemonic->GetValue(); + if (strLastData != strtemp) + { + strLastData = strtemp; + m_pIoctlControl->MnemonicSet(strtemp); + } + +} + void CDriverToolFrame::OnSpinClick(wxSpinEvent & event) { wxObject* pObject = event.GetEventObject(); @@ -861,7 +815,6 @@ void CDriverToolFrame::InitCollapsiblePane() m_vecSizerPointArray.push_back(pSizer); m_pStaticIoctlNumber = new wxStaticText(m_pExtSecondPanel, wxID_ANY, wxT("Ioctl Code:")); - //m_pStaticIoctlNumber->SetMinSize(wxSize(50, 0)); pSizer->Add(m_pStaticIoctlNumber, 0, wxALIGN_CENTER_VERTICAL | wxALL, 2); m_pEdtShowIoctlCode = new wxTextCtrl(m_pExtSecondPanel, ID_EDTSHOWIOCTL); @@ -916,7 +869,8 @@ void CDriverToolFrame::InitCollapsiblePane() m_pSpinFunction->SetRange(0, 0xFFF); m_pFlexGridSizer->Add(m_pSpinFunction, wxSizerFlags(0).CenterVertical()); - // + + m_vecSizerPointArray.push_back(pSizer); m_pStaticMethod = new wxStaticText(m_pExtSecondPanel, wxID_ANY, wxT("Method:")); @@ -929,9 +883,6 @@ void CDriverToolFrame::InitCollapsiblePane() m_pSpinMethod->SetRange(0, 3); m_pFlexGridSizer->Add(m_pSpinMethod, wxSizerFlags().CenterVertical()); - //m_pIoctlSetailsSizer->Add(m_pFlexGridSizer, 1, wxALIGN_CENTRE_VERTICAL | wxALL, 2); - //m_pIoctlSetailsSizer->Add(pSizer, 0, wxGROW | wxALL, 0); - // m_pStaticAccess = new wxStaticText(m_pExtSecondPanel, wxID_ANY, wxT("Access:")); m_pFlexGridSizer->Add(m_pStaticAccess, wxSizerFlags().CenterVertical()); @@ -945,6 +896,7 @@ void CDriverToolFrame::InitCollapsiblePane() m_pIoctlSetailsSizer->Add(m_pFlexGridSizer, 0, wxGROW | wxALL, 0); m_pExtBoxSize2->Add(m_pIoctlSetailsSizer, 0, wxGROW | wxALL, 5); + //Layout m_pIoctlLayout = new wxStaticBoxSizer(wxVERTICAL, m_pExtSecondPanel, wxT("I/O Control Code Layout")); @@ -962,7 +914,8 @@ void CDriverToolFrame::InitCollapsiblePane() //³õʼ»¯IoctlÖú¼Ç·û m_pIoctlControl = new CIoctlEdtControl(m_pEdtShowIoctlCode, m_pEdtMnemonic, m_pEdtDeviceType, m_pEdtFunction, m_pEdtMethod, m_pEdtAccess, m_pEdtIoctlLayout); - //m_pEdtShowIoctlCode->SetLabelText(wxT("000B0000")); + m_pEdtShowIoctlCode->SetLabelText(wxT("000B0000")); + wxString strTemp; strTemp = wxString::Format(wxT("Recognizes %lu mnemonics"), m_pIoctlControl->GetMnemonicNumber()); m_pStaticNumberOfIoctl->SetLabelText(strTemp); @@ -1079,8 +1032,8 @@ void CDriverToolFrame::UpdateDriverInfo() auto iter = g_GUIDMap.cbegin(); for (int index = 0; iter != g_GUIDMap.cend(); ++iter, ++index) { - keyPath = TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\") + iter->second;//{ca3e7ab9-b4c3-4ae6-8251-579ef933890f} - //keyPath = TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\{ca3e7ab9-b4c3-4ae6-8251-579ef933890f}"); + keyPath = TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\") + iter->second; + ulRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, keyPath.c_str(), 0, KEY_ALL_ACCESS | KEY_WOW64_64KEY, &hMainKey); if (ulRet != ERROR_SUCCESS) { diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.h" index 436208e..5d58b3d 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.h" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/DriverToolFrame.h" @@ -19,14 +19,13 @@ enum ID_BTN_MORE, ID_GAUGE, ID_EXTEND_FRAME, - //CollapsiblePane ID_COLLAPSIBLEPANE, ID_NOTEBOOK, ID_RADIOBOX_PAGE1, ID_RADIOBEGIN, ID_RADIOEND = ID_RADIOBEGIN + 50, ID_EDTSHOWIOCTL, - ID_EDTSHOWMNEMONIC,//m_pEdtMnemonic + ID_EDTSHOWMNEMONIC, ID_SPIL_DEVICETYPE, ID_SPIL_FUNCTION, ID_SPIL_METHOD, @@ -154,7 +153,6 @@ class CDriverToolFrame : void OnUnInstall(wxCommandEvent &event); void OnWindowTop(wxCommandEvent &event); void OnWindowMove(wxMoveEvent &event); - //void OnShowExtendFrame(wxCommandEvent &event); void OnStartChange(wxCommandEvent & event); void OnFilterDriverNotify(wxCommandEvent & event); @@ -165,6 +163,7 @@ class CDriverToolFrame : void OnCollapsiblePaneExpand(wxCollapsiblePaneEvent& event); void OnIoctlCodeChange(wxCommandEvent& event); + void OnIoctlMnemonicChange(wxCommandEvent& event); void OnSpinClick(wxSpinEvent& event); private: void InitCollapsiblePane(); diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/HidDevice.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/HidDevice.h" new file mode 100644 index 0000000..22aadae --- /dev/null +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/HidDevice.h" @@ -0,0 +1,39 @@ +#pragma once +// +// Macro for defining HID ioctls +// +#define HID_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS) +#define HID_BUFFER_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_BUFFERED, FILE_ANY_ACCESS) +#define HID_IN_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_IN_DIRECT, FILE_ANY_ACCESS) +#define HID_OUT_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_OUT_DIRECT, FILE_ANY_ACCESS) + +#define HID_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_NEITHER, FILE_ANY_ACCESS) +#define HID_BUFFER_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_BUFFERED, FILE_ANY_ACCESS) +#define HID_IN_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_IN_DIRECT, FILE_ANY_ACCESS) +#define HID_OUT_CTL_CODE(id) CTL_CODE(FILE_DEVICE_KEYBOARD, (id), METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_HID_GET_DRIVER_CONFIG HID_BUFFER_CTL_CODE(100) +#define IOCTL_HID_SET_DRIVER_CONFIG HID_BUFFER_CTL_CODE(101) +#define IOCTL_HID_GET_POLL_FREQUENCY_MSEC HID_BUFFER_CTL_CODE(102) +#define IOCTL_HID_SET_POLL_FREQUENCY_MSEC HID_BUFFER_CTL_CODE(103) +#define IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS HID_BUFFER_CTL_CODE(104) +#define IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS HID_BUFFER_CTL_CODE(105) +#define IOCTL_HID_GET_COLLECTION_INFORMATION HID_BUFFER_CTL_CODE(106) +#define IOCTL_HID_ENABLE_WAKE_ON_SX HID_BUFFER_CTL_CODE(107) +#define IOCTL_HID_SET_S0_IDLE_TIMEOUT HID_BUFFER_CTL_CODE(108) +#define IOCTL_HID_GET_COLLECTION_DESCRIPTOR HID_CTL_CODE(100) +#define IOCTL_HID_FLUSH_QUEUE HID_CTL_CODE(101) +#define IOCTL_HID_SET_FEATURE HID_IN_CTL_CODE(100) +#define IOCTL_HID_SET_OUTPUT_REPORT HID_IN_CTL_CODE(101) +#define IOCTL_HID_GET_FEATURE HID_OUT_CTL_CODE(100) +#define IOCTL_GET_PHYSICAL_DESCRIPTOR HID_OUT_CTL_CODE(102) +#define IOCTL_HID_GET_HARDWARE_ID HID_OUT_CTL_CODE(103) +#define IOCTL_HID_GET_INPUT_REPORT HID_OUT_CTL_CODE(104) +#define IOCTL_HID_GET_OUTPUT_REPORT HID_OUT_CTL_CODE(105) +#define IOCTL_HID_GET_MANUFACTURER_STRING HID_OUT_CTL_CODE(110) +#define IOCTL_HID_GET_PRODUCT_STRING HID_OUT_CTL_CODE(111) +#define IOCTL_HID_GET_SERIALNUMBER_STRING HID_OUT_CTL_CODE(112) +#define IOCTL_HID_GET_INDEXED_STRING HID_OUT_CTL_CODE(120) +#define IOCTL_HID_GET_MS_GENRE_DESCRIPTOR HID_OUT_CTL_CODE(121) +#define IOCTL_HID_ENABLE_SECURE_READ HID_CTL_CODE(130) +#define IOCTL_HID_DISABLE_SECURE_READ HID_CTL_CODE(131) +#define IOCTL_HID_DEVICERESET_NOTIFICATION HID_CTL_CODE(140) \ No newline at end of file diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.cpp" "b/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.cpp" index 2e4bc9a..f2b2044 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.cpp" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.cpp" @@ -4,6 +4,11 @@ #include #include #include +#include +#include "KbdIoctlCode.h" +#include "PrintDevice.h" +#include "HidDevice.h" +#include "ddpar.h" CIoctlEdtControl::CIoctlEdtControl(wxTextCtrl * code, wxTextCtrl * mnemonic, wxTextCtrl * devType, wxTextCtrl * function, wxTextCtrl * method, wxTextCtrl * access, wxTextCtrl * layout): m_pEdtCode(code), m_pEdtMnemonic(mnemonic), m_pEdtDevType(devType), m_pEdtFunction(function), m_pEdtMethod(method), m_pEdtAccess(access), m_pEdtLayout(layout) @@ -101,9 +106,323 @@ void CIoctlEdtControl::InitMapData() INSERT(m_mapDeviceType, FILE_DEVICE_MT_TRANSPORT); INSERT(m_mapDeviceType, FILE_DEVICE_BIOMETRIC); INSERT(m_mapDeviceType, FILE_DEVICE_PMI); + INSERT(m_mapDeviceType, FILE_DEVICE_DOT4); + } +#undef INSERT + +#define INSERT(mapdata, mapdata2, first)\ + mapdata.insert(std::pair(first, wxT(#first)));\ + mapdata2.insert(std::pair(wxT(#first), first)); + + //Code To Mnemonic + { + //Kbd + { + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_ATTRIBUTES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_TYPEMATIC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_INDICATORS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_TYPEMATIC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_INDICATORS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_INSERT_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_IME_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_IME_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_ATTRIBUTES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_TYPEMATIC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_INDICATORS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_TYPEMATIC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_INDICATORS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_INSERT_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_QUERY_IME_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_KEYBOARD_SET_IME_STATUS); + } + + //PrintDevice + { + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_CREATE_SOCKET); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_DESTROY_SOCKET); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_WAIT_FOR_CHANNEL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_OPEN_CHANNEL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_CLOSE_CHANNEL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_READ); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_WRITE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_ADD_ACTIVITY_BROADCAST); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_REMOVE_ACTIVITY_BROADCAST); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DOT4_WAIT_ACTIVITY_BROADCAST); + } + //HIDClass + { + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_DRIVER_CONFIG); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_SET_DRIVER_CONFIG); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_POLL_FREQUENCY_MSEC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_SET_POLL_FREQUENCY_MSEC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_COLLECTION_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_ENABLE_WAKE_ON_SX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_SET_S0_IDLE_TIMEOUT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_COLLECTION_DESCRIPTOR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_FLUSH_QUEUE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_SET_FEATURE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_SET_OUTPUT_REPORT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_FEATURE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_GET_PHYSICAL_DESCRIPTOR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_HARDWARE_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_INPUT_REPORT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_OUTPUT_REPORT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_MANUFACTURER_STRING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_PRODUCT_STRING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_SERIALNUMBER_STRING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_INDEXED_STRING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_GET_MS_GENRE_DESCRIPTOR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_ENABLE_SECURE_READ); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_DISABLE_SECURE_READ); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_HID_DEVICERESET_NOTIFICATION); + } + + //ddpar + { + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_QUERY_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_SET_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_QUERY_DEVICE_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_QUERY_DEVICE_ID_SIZE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_IEEE1284_GET_MODE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_IEEE1284_NEGOTIATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_SET_WRITE_ADDRESS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_SET_READ_ADDRESS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_GET_DEVICE_CAPS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_GET_DEFAULT_MODES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_PING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_QUERY_RAW_DEVICE_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_ECP_HOST_RECOVERY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_GET_READ_ADDRESS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_GET_WRITE_ADDRESS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_TEST); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_IS_PORT_FREE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_PAR_QUERY_LOCATION); + } + + //basic + { + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_CHECK_VERIFY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_CHECK_VERIFY2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_MEDIA_REMOVAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_EJECT_MEDIA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_LOAD_MEDIA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_LOAD_MEDIA2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_RESERVE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_RELEASE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_FIND_NEW_DEVICES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_EJECTION_CONTROL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_MCN_CONTROL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_MEDIA_TYPES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_MEDIA_TYPES_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_HOTPLUG_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_SET_HOTPLUG_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_RESET_BUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_RESET_DEVICE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_BREAK_RESERVATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_PERSISTENT_RESERVE_IN); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_PERSISTENT_RESERVE_OUT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_DEVICE_NUMBER); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_PREDICT_FAILURE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_READ_CAPACITY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_QUERY_PROPERTY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_GET_BC_PROPERTIES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_ALLOCATE_BC_STREAM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_FREE_BC_STREAM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, OBSOLETE_IOCTL_STORAGE_RESET_BUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, OBSOLETE_IOCTL_STORAGE_RESET_DEVICE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_DRIVE_GEOMETRY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_PARTITION_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SET_PARTITION_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_DRIVE_LAYOUT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SET_DRIVE_LAYOUT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_VERIFY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_FORMAT_TRACKS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_REASSIGN_BLOCKS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_PERFORMANCE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_IS_WRITABLE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_LOGGING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_FORMAT_TRACKS_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_HISTOGRAM_STRUCTURE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_HISTOGRAM_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_HISTOGRAM_RESET); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_REQUEST_STRUCTURE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_REQUEST_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_PERFORMANCE_OFF); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_CONTROLLER_NUMBER); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, SMART_GET_VERSION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, SMART_SEND_DRIVE_COMMAND); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, SMART_RCV_DRIVE_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_PARTITION_INFO_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SET_PARTITION_INFO_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_DRIVE_LAYOUT_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SET_DRIVE_LAYOUT_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_CREATE_DISK); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_LENGTH_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_REASSIGN_BLOCKS_EX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_UPDATE_DRIVE_SIZE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GROW_PARTITION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_CACHE_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SET_CACHE_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, OBSOLETE_DISK_GET_WRITE_CACHE_STATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_DELETE_DRIVE_LAYOUT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_UPDATE_PROPERTIES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_FORMAT_DRIVE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_SENSE_DEVICE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_CHECK_VERIFY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_MEDIA_REMOVAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_EJECT_MEDIA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_LOAD_MEDIA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_RESERVE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_RELEASE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_FIND_NEW_DEVICES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_GET_MEDIA_TYPES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_DISK_RESET_SNAPSHOT_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_GET_PARAMETERS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_GET_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_GET_PRODUCT_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_SET_ACCESS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_GET_ELEMENT_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_SET_POSITION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_EXCHANGE_MEDIUM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_MOVE_MEDIUM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_REINITIALIZE_TRANSPORT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_CHANGER_QUERY_VOLUME_TAGS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SERIAL_LSRMST_INSERT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SERENUM_EXPOSE_HARDWARE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SERENUM_REMOVE_HARDWARE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SERENUM_PORT_DESC); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_SERENUM_GET_PORT_NAME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_REQUEST_OPLOCK_LEVEL_1); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_REQUEST_OPLOCK_LEVEL_2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_REQUEST_BATCH_OPLOCK); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_OPLOCK_BREAK_ACKNOWLEDGE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_OPBATCH_ACK_CLOSE_PENDING); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_OPLOCK_BREAK_NOTIFY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_LOCK_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_UNLOCK_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_DISMOUNT_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_IS_VOLUME_MOUNTED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_IS_PATHNAME_VALID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_MARK_VOLUME_DIRTY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_RETRIEVAL_POINTERS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_COMPRESSION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_COMPRESSION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_BOOTLOADER_ACCESSED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_OPLOCK_BREAK_ACK_NO_2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_INVALIDATE_VOLUMES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_FAT_BPB); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_REQUEST_FILTER_OPLOCK); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_FILESYSTEM_GET_STATISTICS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_NTFS_VOLUME_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_NTFS_FILE_RECORD); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_VOLUME_BITMAP); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_RETRIEVAL_POINTERS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_MOVE_FILE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_IS_VOLUME_DIRTY); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_ALLOW_EXTENDED_DASD_IO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_FIND_FILES_BY_SID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_OBJECT_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_OBJECT_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_DELETE_OBJECT_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_REPARSE_POINT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_REPARSE_POINT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_DELETE_REPARSE_POINT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_ENUM_USN_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SECURITY_ID_CHECK); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_READ_USN_JOURNAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_OBJECT_ID_EXTENDED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CREATE_OR_GET_OBJECT_ID); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_SPARSE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_ZERO_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_ALLOCATED_RANGES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_ENABLE_UPGRADE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_ENCRYPTION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_ENCRYPTION_FSCTL_IO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_WRITE_RAW_ENCRYPTED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_READ_RAW_ENCRYPTED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CREATE_USN_JOURNAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_READ_FILE_USN_DATA); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_WRITE_USN_CLOSE_RECORD); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_EXTEND_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_USN_JOURNAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_DELETE_USN_JOURNAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_MARK_HANDLE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SIS_COPYFILE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SIS_LINK_FILES); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_RECALL_FILE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_READ_FROM_PLEX); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_FILE_PREFETCH); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_MAKE_MEDIA_COMPATIBLE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_DEFECT_MANAGEMENT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_SPARING_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_ON_DISK_VOLUME_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_VOLUME_COMPRESSION_STATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_MODIFY_RM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_QUERY_RM_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_ROLLFORWARD_REDO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_ROLLFORWARD_UNDO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_START_RM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_SHUTDOWN_RM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_READ_BACKUP_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_WRITE_BACKUP_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_CREATE_SECONDARY_RM); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_GET_METADATA_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_GET_TRANSACTED_VERSION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_SAVEPOINT_INFORMATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_CREATE_MINIVERSION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_TRANSACTION_ACTIVE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_ZERO_ON_DEALLOCATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_REPAIR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_REPAIR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_WAIT_FOR_REPAIR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_INITIATE_REPAIR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CSC_INTERNAL); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SHRINK_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_SHORT_NAME_BEHAVIOR); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_DFSR_SET_GHOST_HANDLE_STATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_LIST_TRANSACTIONS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_PAGEFILE_ENCRYPTION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_RESET_VOLUME_ALLOCATION_HINTS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_DEPENDENT_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SD_GLOBAL_CHANGE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_READ_BACKUP_INFORMATION2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_LOOKUP_STREAM_FROM_CLUSTER); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_TXFS_WRITE_BACKUP_INFORMATION2); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_FILE_TYPE_NOTIFICATION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_BOOT_AREA_INFO); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_GET_RETRIEVAL_POINTER_BASE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_SET_PERSISTENT_VOLUME_STATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_PERSISTENT_VOLUME_STATE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_REQUEST_OPLOCK); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CSV_TUNNEL_REQUEST); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_IS_CSV_FILE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_QUERY_FILE_SYSTEM_RECOGNITION); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CSV_GET_VOLUME_PATH_NAME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, FSCTL_IS_FILE_ON_CSV_VOLUME); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_VOLUME_ONLINE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_VOLUME_OFFLINE); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_VOLUME_IS_CLUSTERED); + INSERT(m_mapCodeAndMnemonic, m_mapMnemonicToCode, IOCTL_VOLUME_GET_GPT_ATTRIBUTES); + + } } - + + #undef INSERT } @@ -112,7 +431,25 @@ ULONG_PTR CIoctlEdtControl::GetMnemonicNumber() return m_mapCodeAndMnemonic.size(); } - +void CIoctlEdtControl::MnemonicSet(const wxString & strMnemonic) +{ + do + { + wxString newStr = strMnemonic.Upper(); + auto iter = m_mapMnemonicToCode.find(newStr); + if (iter == m_mapMnemonicToCode.cend()) + { + IOCTL_INFO ioctlInfo = { 0 }; + UpdateIoctlInfo(ioctlInfo); + } + else + { + IOCTL_INFO ioctlInfo = { iter->second }; + UpdateIoctlInfo(ioctlInfo); + } + + } while (false); +} void CIoctlEdtControl::GetIoctlInfo(IOCTL_INFO & ioctlInfo) { @@ -131,7 +468,6 @@ void CIoctlEdtControl::UpdateIoctlInfo(const IOCTL_INFO & ioctlInfo) m_pEdtMethod->SetLabelText(wxT("")); m_pEdtAccess->SetLabelText(wxT("")); m_pEdtLayout->SetLabelText(wxT("")); - //m_pEdtCode->SetLabelText(wxT("0x00000000")); m_pEdtCode->SetInsertionPoint(-1); m_pEdtLayout->SetLabelText(wxT("00000000000000000000000000000000")); break;; @@ -146,11 +482,11 @@ void CIoctlEdtControl::UpdateIoctlInfo(const IOCTL_INFO & ioctlInfo) auto p1 = m_mapDeviceType.find(ioctlInfo.Info.DeviceType); if (p1 != m_mapDeviceType.end()) { - m_pEdtDevType->SetValue(p1->second); + m_pEdtDevType->SetLabelText(p1->second); } else { - m_pEdtDevType->SetValue(wxT("")); + m_pEdtDevType->SetLabelText(wxT("")); } //Function @@ -161,35 +497,45 @@ void CIoctlEdtControl::UpdateIoctlInfo(const IOCTL_INFO & ioctlInfo) auto p2 = m_mapMethod.find(ioctlInfo.Info.Method); if (p2 != m_mapMethod.end()) { - m_pEdtMethod->SetValue(p2->second); + m_pEdtMethod->SetLabelText(p2->second); } else { - m_pEdtMethod->SetValue(wxT("")); + m_pEdtMethod->SetLabelText(wxT("")); } //Access auto p3 = m_mapAccess.find(ioctlInfo.Info.Access); if (p3 != m_mapAccess.end()) { - m_pEdtAccess->SetValue(p3->second); + m_pEdtAccess->SetLabelText(p3->second); } else { - m_pEdtAccess->SetValue(wxT("")); + m_pEdtAccess->SetLabelText(wxT("")); } //DeviceType auto p4 = m_mapDeviceType.find(ioctlInfo.Info.DeviceType); if (p4 != m_mapDeviceType.end()) { - m_pEdtDevType->SetValue(p4->second); + m_pEdtDevType->SetLabelText(p4->second); } else { - m_pEdtDevType->SetValue(wxT("0")); + m_pEdtDevType->SetLabelText(wxT("0")); } + //Mnemonic + auto p5 = m_mapCodeAndMnemonic.find(ioctlInfo.ulData); + if (p5 != m_mapCodeAndMnemonic.end()) + { + m_pEdtMnemonic->SetLabelText(p5->second); + } + else + { + m_pEdtMnemonic->SetLabelText(wxT("")); + } std::bitset<32> bitData(ioctlInfo.ulData); m_pEdtLayout->SetLabelText(bitData.to_string()); } while (0); diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.h" index 86c4805..0891a2a 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.h" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/IoctlEdtControl.h" @@ -15,6 +15,7 @@ class CIoctlEdtControl wxTextCtrl* m_pEdtAccess; wxTextCtrl* m_pEdtLayout; + std::map m_mapMnemonicToCode; std::map m_mapCodeAndMnemonic; std::map m_mapDeviceType; //std::map m_mapFunction; @@ -26,6 +27,7 @@ class CIoctlEdtControl void InitMapData(); ULONG_PTR GetMnemonicNumber(); + void MnemonicSet(const wxString &strMnemonic); void GetIoctlInfo(IOCTL_INFO &ioctlInfo); void UpdateIoctlInfo(const IOCTL_INFO& ioctlInfo); }; diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/KbdIoctlCode.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/KbdIoctlCode.h" new file mode 100644 index 0000000..3108fa5 --- /dev/null +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/KbdIoctlCode.h" @@ -0,0 +1,25 @@ +#pragma once +#define FILE_DEVICE_DOT4 0x3a +#define IOCTL_DOT4_USER_BASE 2049 +#define IOCTL_DOT4_LAST IOCTL_DOT4_USER_BASE + 9 + +#define IOCTL_KEYBOARD_QUERY_ATTRIBUTES CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_TYPEMATIC CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_TYPEMATIC CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0020, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_INSERT_DATA CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0040, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0080, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_IME_STATUS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0400, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_IME_STATUS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0401, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_ATTRIBUTES CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_TYPEMATIC CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_TYPEMATIC CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_INDICATORS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0020, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_INSERT_DATA CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0040, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0080, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_QUERY_IME_STATUS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0400, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_KEYBOARD_SET_IME_STATUS CTL_CODE(FILE_DEVICE_KEYBOARD, 0x0401, METHOD_BUFFERED, FILE_ANY_ACCESS) \ No newline at end of file diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/PrintDevice.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/PrintDevice.h" new file mode 100644 index 0000000..6d3105d --- /dev/null +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/PrintDevice.h" @@ -0,0 +1,11 @@ +#pragma once +#define IOCTL_DOT4_CREATE_SOCKET CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 7, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_DESTROY_SOCKET CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 9, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_WAIT_FOR_CHANNEL CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 8, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_OPEN_CHANNEL CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 0, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_CLOSE_CHANNEL CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 1, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_DOT4_READ CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 2, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_WRITE CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 3, METHOD_IN_DIRECT, FILE_ANY_ACCESS) +#define IOCTL_DOT4_ADD_ACTIVITY_BROADCAST CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 4, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_DOT4_REMOVE_ACTIVITY_BROADCAST CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 5, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_DOT4_WAIT_ACTIVITY_BROADCAST CTL_CODE(FILE_DEVICE_DOT4, IOCTL_DOT4_USER_BASE + 6, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) \ No newline at end of file diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/ddpar.h" "b/\351\251\261\345\212\250\345\267\245\345\205\267/ddpar.h" new file mode 100644 index 0000000..e4420ba --- /dev/null +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/ddpar.h" @@ -0,0 +1,20 @@ +#pragma once + +#define IOCTL_PAR_QUERY_INFORMATION CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 1, METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_PAR_SET_INFORMATION CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 2, METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_PAR_QUERY_DEVICE_ID CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 3, METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_PAR_QUERY_DEVICE_ID_SIZE CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 4, METHOD_BUFFERED,FILE_ANY_ACCESS) +#define IOCTL_IEEE1284_GET_MODE CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_IEEE1284_NEGOTIATE CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_SET_WRITE_ADDRESS CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_SET_READ_ADDRESS CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_GET_DEVICE_CAPS CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_GET_DEFAULT_MODES CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_PING CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_QUERY_RAW_DEVICE_ID CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_ECP_HOST_RECOVERY CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_GET_READ_ADDRESS CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_GET_WRITE_ADDRESS CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_TEST CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_IS_PORT_FREE CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) +#define IOCTL_PAR_QUERY_LOCATION CTL_CODE(FILE_DEVICE_PARALLEL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) \ No newline at end of file diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj" "b/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj" index dafe4e4..816a4c7 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj" @@ -170,9 +170,13 @@ + + + + diff --git "a/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj.filters" "b/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj.filters" index 64c17b2..5e5a10b 100644 --- "a/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj.filters" +++ "b/\351\251\261\345\212\250\345\267\245\345\205\267/\351\251\261\345\212\250\345\267\245\345\205\267.vcxproj.filters" @@ -13,6 +13,9 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {5af012df-db12-42c6-bc12-91e9c2a84eb1} + @@ -42,6 +45,18 @@ 头文件 + + 头文件\DeviceIoctlCode + + + 头文件\DeviceIoctlCode + + + 头文件\DeviceIoctlCode + + + 头文件\DeviceIoctlCode +