Sync with trunk r64222.

svn path=/branches/shell-experiments/; revision=64225
This commit is contained in:
David Quintana
2014-09-22 12:51:09 +00:00
218 changed files with 35829 additions and 28512 deletions
@@ -64,7 +64,8 @@ SHIFT Изменение положения (сдвиг) подставляе
IDS_HELP2 "START Выполнение программы или команды в отдельном окне.\n\
TIME Вывод и установка системного времени.\n\
TIMER Секундомер.\n\
TITLE Назначение заголовка окна для текущего сеанса интерпретатора\n\командных строк CMD.EXE.\n\
TITLE Назначение заголовка окна для текущего сеанса интерпретатора\n\
командных строк CMD.EXE.\n\
TYPE Вывод на экран содержимого текстовых файлов.\n\
VER Вывод сведений о версии ReactOS.\n\
VERIFY ВУстановка режима проверки правильности записи файлов на диск.\n\
+1 -1
View File
@@ -11,7 +11,7 @@ BEGIN
CONTROL "Tab1", IDC_TAB_CONTROL, "SysTabControl32", WS_TABSTOP, 2, 2, 474, 250
PUSHBUTTON "&Yardım", IDC_BUTTON_HELP, 2, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
DEFPUSHBUTTON "&Sonraki Bölüm", IDC_BUTTON_NEXT, 257, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Tüm Bilgileri Kaydet...", IDC_BUTTON_SAVE_INFO, 311, 261, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Tüm Bilgileri Sakla...", IDC_BUTTON_SAVE_INFO, 311, 261, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Çıkış", IDC_BUTTON_EXIT, 425, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
@@ -12,7 +12,7 @@ IDC_EVENTVWR MENU
BEGIN
POPUP "&Kayıt"
BEGIN
MENUITEM "&Protokolü Kaydet...", ID_SAVE_PROTOCOL, GRAYED
MENUITEM "&Protokolü Sakla...", ID_SAVE_PROTOCOL, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Tüm Olayları Sil", ID_CLEAR_EVENTS, GRAYED
MENUITEM SEPARATOR
@@ -103,7 +103,7 @@ BEGIN
IDS_EVENTLOG_AUDIT_FAILURE "Başarısızlık Denetimi"
IDS_EVENTLOG_SUCCESS "Başarı"
IDS_EVENTLOG_UNKNOWN_TYPE "Bilinmeyen Olay"
IDS_CLEAREVENTS_MSG "Silmeden önce bu olay kaydını kaydetmek ister misiniz?"
IDS_CLEAREVENTS_MSG "Silmeden önce bu olay kaydını saklamak ister misiniz?"
IDS_SAVE_FILTER "Olay Kaydı (*.evt)\0*.evt\0"
END
+3 -3
View File
@@ -14,8 +14,8 @@ BEGIN
BEGIN
MENUITEM "&Yeni\tCtrl+N", IDM_FILENEW
MENUITEM "&Aç...\tCtrl+O", IDM_FILEOPEN
MENUITEM "&Kaydet\tCtrl+S", IDM_FILESAVE
MENUITEM "Ay&rı Kaydet...", IDM_FILESAVEAS
MENUITEM "&Sakla\tCtrl+S", IDM_FILESAVE
MENUITEM "Ay&rı Sakla...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "&Döşeyerek Duvar Kağıdı Yap", IDM_FILEASWALLPAPERPLANE
MENUITEM "&Ortalayarak Duvar Kağıdı Yap", IDM_FILEASWALLPAPERCENTERED
@@ -187,7 +187,7 @@ BEGIN
IDS_WINDOWTITLE "%s - Boyama"
IDS_INFOTITLE "Boyama"
IDS_INFOTEXT "Boyama, GNU Kısıtlı Umûmî Kamu Ruhsatı (LGPL) altında vardır. (LGPL için bakınız: www.gnu.org)"
IDS_SAVEPROMPTTEXT "%s için yapılan değişiklikleri kaydetmek ister misiniz?"
IDS_SAVEPROMPTTEXT "%s için yapılan değişiklikleri saklamak ister misiniz?"
IDS_DEFAULTFILENAME "Adsız.bmp"
IDS_MINIATURETITLE "Küçüğü"
IDS_TOOLTIP1 "Özgür Seçim"
+3 -3
View File
@@ -14,11 +14,11 @@ BEGIN
LTEXT "Kullanıcı Adı:", IDC_STATIC, 47, 58, 38, 8
COMBOBOX IDC_SERVERCOMBO, 79, 39, 141, 150, CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_NAMEEDIT, 110, 55, 110, 14, WS_TABSTOP | ES_AUTOHSCROLL
PUSHBUTTON "Kaydet", IDC_SAVE, 67, 139, 50, 14
PUSHBUTTON "Ayrı Kaydet...", IDC_SAVEAS, 123, 139, 50, 14
PUSHBUTTON "Sakla", IDC_SAVE, 67, 139, 50, 14
PUSHBUTTON "Ayrı Sakla...", IDC_SAVEAS, 123, 139, 50, 14
PUSHBUTTON "Aç...", IDC_OPEN, 177, 139, 50, 14
ICON "", IDC_CONNICON, 16, 114, 20, 20
LTEXT "Şimdiki bağlantı ayarlarını kaydedebilir ya da var olan bir ayar kütüğünü açabilirsiniz.", IDC_STATIC, 50, 115, 172, 20
LTEXT "Şimdiki bağlantı ayarlarını saklayabilir ya da var olan bir ayar kütüğünü açabilirsiniz.", IDC_STATIC, 50, 115, 172, 20
END
IDD_DISPLAY DIALOGEX 0, 0, 242, 175
+4 -4
View File
@@ -26,10 +26,10 @@ BEGIN
BEGIN
MENUITEM "&Yeni\tCtrl+N", CMD_NEW
MENUITEM "&Aç...\tCtrl+O", CMD_OPEN
MENUITEM "&Kaydet\tCtrl+S", CMD_SAVE
MENUITEM "Ay&rı Kaydet...", CMD_SAVE_AS
MENUITEM "&Sakla\tCtrl+S", CMD_SAVE
MENUITEM "Ay&rı Sakla...", CMD_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "&Sayfa Ayarla...", CMD_PAGE_SETUP
MENUITEM "Say&fa Ayarla...", CMD_PAGE_SETUP
MENUITEM "Ya&zdır...\tCtrl+P", CMD_PRINT
MENUITEM "Yaz&ıcı Ayarla...", CMD_PRINTER_SETUP
MENUITEM SEPARATOR
@@ -155,7 +155,7 @@ BEGIN
STRING_TOOLARGE "%s kütüğü Not Defteri için çok büyük. Lütfen başka bir düzenleyici kullanınız."
STRING_NOTEXT "Hiç metin girmediniz. Lütfen birşeyler yazıp yeniden deneyiniz."
STRING_DOESNOTEXIST "%s kütüğü yok. Yeni bir kütük oluşturmak ister misiniz?"
STRING_NOTSAVED "%s kütüğü değiştirilmiş. Değişiklikleri kaydetmek ister misiniz?"
STRING_NOTSAVED "%s kütüğü değiştirilmiş. Değişiklikleri saklamak ister misiniz?"
STRING_NOTFOUND "%s bulunamadı."
STRING_OUT_OF_MEMORY "Bu işi bitirmek için bellek yetersiz. Kullanılabilen belleği arttırmak için bir ya da daha çok uygulama kapatınız."
STRING_CANNOTFIND "%s bulunamadı."
+2 -2
View File
@@ -60,9 +60,9 @@ CAPTION "Ayarlar"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Umûmî", -1, 4, 2, 240, 61
AUTOCHECKBOX "&Pencere Konumunu Kaydet", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
AUTOCHECKBOX "&Pencere Konumunu Sakla", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
AUTOCHECKBOX "&Başlangıçta Erişilebilir İzlencelerin Dizelgesini Yenile", IDC_UPDATE_AVLIST, 15, 29, 222, 12
AUTOCHECKBOX "&İzlencelerin Kuruluşlarını ve Kaldırılışlarını Kaydet", IDC_LOG_ENABLED, 15, 46, 219, 12
AUTOCHECKBOX "&İzlencelerin Kuruluşlarını ve Kaldırılışlarını Sakla", IDC_LOG_ENABLED, 15, 46, 219, 12
GROUPBOX "İndirme", -1, 4, 65, 240, 51
LTEXT "İndirme Dizini:", -1, 16, 75, 100, 9
EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL
@@ -3,13 +3,13 @@
[Section]
Name = Orwell Dev-C++ MinGW32
Version = 5.7.0
Version = 5.7.1
Licence = GPLv2
Description = A maintained version of Dev-C++. It contains MinGW32 compiler.
Size = 60.2 MB
Category = 7
URLSite = http://orwelldevcpp.blogspot.com/
URLDownload = http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-Cpp%205.7.0%20MinGW%204.8.1%20Setup.exe
URLDownload = http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-Cpp%205.7.1%20MinGW%204.8.1%20Setup.exe
CDPath = none
[Section.0407]
@@ -3,13 +3,13 @@
[Section]
Name = Orwell Dev-C++ TDM GCC x64
Version = 5.7.0
Version = 5.7.1
Licence = GPLv2
Description = A maintained version of Dev-C++. It contains 64 bit TDM-GCC compiler.
Size = 44.7 MB
Category = 7
URLSite = http://orwelldevcpp.blogspot.com/
URLDownload = http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-Cpp%205.7.0%20TDM-GCC%20x64%204.8.1%20Setup.exe
URLDownload = http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-Cpp%205.7.1%20TDM-GCC%20x64%204.8.1%20Setup.exe
CDPath = none
[Section.0407]
+17 -17
View File
@@ -2,95 +2,95 @@
; Turkish translation by Erdem Ersoy (eersoy93) ([email protected])
[Section]
Name = Mozilla Firefox 31
Version = 31.0
Name = Mozilla Firefox 32
Version = 32.0.1
Licence = MPL/GPL/LGPL
Description = The most popular and one of the best free Web Browsers out there.
Size = 30.75 MB
Category = 5
URLSite = http://www.mozilla.org/en-US/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/en-US/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/en-US/Firefox%20Setup%2032.0.1.exe
CDPath = none
[Section.0405]
Description = Nejpopulárnější a jeden z nejlepších svobodných webových prohlížečů.
Size = 30.6 MB
URLSite = http://www.mozilla.org/cs/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/cs/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/cs/Firefox%20Setup%2032.0.1.exe
[Section.0407]
Description = Der populärste und einer der besten freien Webbrowser.
Size = 30.56 MB
URLSite = http://www.mozilla.org/de/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/de/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/de/Firefox%20Setup%2032.0.1.exe
[Section.040a]
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
Size = 30.5 MB
URLSite = http://www.mozilla.org/es-ES/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/es-ES/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/es-ES/Firefox%20Setup%2032.0.1.exe
[Section.040c]
Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs.
Size = 30,85 Mo
URLSite = http://www.mozilla.org/fr/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/fr/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/fr/Firefox%20Setup%2032.0.1.exe
[Section.0410]
Description = Il più popolare e uno dei migliori web browser gratuiti.
Size = 30.49 MB
URLSite = http://www.mozilla.org/it/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/it/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/it/Firefox%20Setup%2032.0.1.exe
[Section.0413]
Description = De meest populaire en een van de beste gratis Web browsers.
Size = 31.2 MB
URLSite = http://www.mozilla.org/nl/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/nl/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/nl/Firefox%20Setup%2032.0.1.exe
[Section.0414]
Description = Mest populære og best også gratis nettleserene der ute.
Size = 30.55 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/nb-NO/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/nb-NO/Firefox%20Setup%2032.0.1.exe
[Section.0415]
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
Size = 31.42 MB
URLSite = http://www.mozilla.org/pl/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/pl/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/pl/Firefox%20Setup%2032.0.1.exe
[Section.0418]
Description = Cel mai popular și unul dintre cele mai bune navigatoare web gratuite existente.
Size = 31,0 Mo
URLSite = http://www.mozilla.org/ro/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/ro/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/ro/Firefox%20Setup%2032.0.1.exe
[Section.0419]
Description = Один из самых популярных и лучших бесплатных браузеров.
Size = 30.94 MB
URLSite = http://www.mozilla.org/ru/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/ru/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/ru/Firefox%20Setup%2032.0.1.exe
[Section.041b]
Description = Najpopulárnejší a jeden z najlepších slobodný webových prehliadačov.
Size = 31.23 MB
URLSite = http://www.mozilla.org/sk/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/sk/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/sk/Firefox%20Setup%2032.0.1.exe
[Section.041f]
Description = Özgür Umûmî Ağ tarayıcıları arasında en tutulanı ve en iyilerinden biri.
Size = 30,58 MB
URLSite = http://www.mozilla.org/tr/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/tr/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/tr/Firefox%20Setup%2032.0.1.exe
[Section.0422]
Description = Найпопулярніший та один з кращих безплатних веб-браузерів.
Size = 30.97 MB
URLSite = http://www.mozilla.org/uk/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/uk/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/uk/Firefox%20Setup%2032.0.1.exe
[Section.0813]
Description = De meest populaire en een van de beste gratis Web browsers.
Size = 31.2 MB
URLSite = http://www.mozilla.org/nl/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/win32/nl/Firefox%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/32.0.1/win32/nl/Firefox%20Setup%2032.0.1.exe
+16
View File
@@ -0,0 +1,16 @@
[Section]
Name = Foxit Reader
Version = 6.2.3.815
Licence = Freeware
Description = The best PDF reader next to Adobe Reader itself.
Size = 36.0 MB
Category = 6
URLSite = http://www.foxitsoftware.com/Secure_PDF_Reader/
URLDownload = http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/6.x/6.2/enu/FoxitReader623.815_prom_enu_Setup.exe
CDPath = none
[Section.0407]
Version = 6.1.5.0624
Description = Neben Adobe Reader der beste PDF Reader.
Size = 44.2 MB
URLDownload = http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/6.x/6.1/L10N/FoxitReader615.0624_prom_L10N_Setup.exe
+3 -3
View File
@@ -3,13 +3,13 @@
[Section]
Name = FreeBASIC
Version = 0.90.1
Version = 1.00.0
Licence = GPL/LGPL
Description = Open Source BASIC Compiler. The BASIC syntax is compatible to QBASIC.
Size = 7.4 MB
Size = 9.0 MB
Category = 7
URLSite = http://www.freebasic.net/
URLDownload = http://download.sourceforge.net/project/fbc/Binaries%20-%20Windows/FreeBASIC-0.90.1-win32.exe
URLDownload = http://download.sourceforge.net/project/fbc/Binaries%20-%20Windows/FreeBASIC-1.00.0-win32.exe
CDPath = none
[Section.0407]
@@ -3,13 +3,13 @@
[Section]
Name = LibreOffice
Version = 4.2.5
Version = 4.3.1
Licence = LGPL
Description = A powerful and open source office suite. It has been forked from OpenOffice.
Size = 209.36 MB
Size = 214.52 MB
Category = 6
URLSite = http://www.documentfoundation.org/
URLDownload = http://download.documentfoundation.org/libreoffice/stable/4.2.5/win/x86/LibreOffice_4.2.5_Win_x86.msi
URLDownload = http://download.documentfoundation.org/libreoffice/stable/4.3.1/win/x86/LibreOffice_4.3.1_Win_x86.msi
CDPath = none
[Section.0407]
+5 -5
View File
@@ -3,18 +3,18 @@
[Section]
Name = Midnight Commander for Windows
Version = Build 183 (4.8.11)
Version = Build 185 (4.8.12)
Licence = GPLv3
Description = 32-bit Windows port of GNU Midnight Commander.
Size = 2.35 MB
Category = 12
URLSite = http://sourceforge.net/projects/mcwin32/
URLDownload = http://download.sourceforge.net/project/mcwin32/mcwin32-build183-setup.exe
URLDownload = http://download.sourceforge.net/project/mcwin32/mcwin32-build185-setup.exe
CDPath = none
[Section.0410]
Name = Midnight Commander per Windows
Version = Revisione 183 (4.8.11)
Version = Revisione 185 (4.8.12)
Licence = GPL versione 3
Description = Un porting Windows 32bit di Midnight Commander.
@@ -25,13 +25,13 @@ Description = 32-bitowy port GNU Midnight Commander dla Windows.
[Section.0418]
Name = Midnight Commander pentru Windows
Version = Versiunea 183 (4.8.11)
Version = Versiunea 185 (4.8.12)
Description = GNU Midnight Commander pentru Windows pe 32-biți.
Size = 2,35 Mo
[Section.041f]
Name = Midnight Commander (Windows için)
Version = Yapı 183 (4.8.11)
Version = Yapı 185 (4.8.12)
Licence = GPL 3. sürüm
Description = GNU Midnight Commander'ın 32 bitlik Windows uyarlamasıdır.
Size = 2,35 MB
+2 -2
View File
@@ -3,13 +3,13 @@
[Section]
Name = Miranda IM
Version = 0.10.23
Version = 0.10.24
Licence = GPL
Description = Open source multiprotocol instant messaging application - May not work completely.
Size = 3.8 MB
Category = 5
URLSite = http://www.miranda-im.org/
URLDownload = http://files.miranda-im.org/stable/0.10.23.0/miranda-im-v0.10.23-unicode.exe
URLDownload = http://files.miranda-im.org/stable/0.10.24.0/miranda-im-v0.10.24-unicode.exe
CDPath = none
[Section.0407]
+6 -6
View File
@@ -3,13 +3,13 @@
[Section]
Name = mIRC 7
Version = 7.34
Version = 7.36
Licence = Shareware
Description = The most popular client for the Internet Relay Chat (IRC).
Size = 1.89 MB
Size = 2.17 MB
Category = 5
URLSite = http://www.mirc.com/
URLDownload = http://download.mirc.com/9/mirc734.exe
URLDownload = http://download.mirc.com/10/mirc736.exe
CDPath = none
[Section.0407]
@@ -20,7 +20,7 @@ Description = El más popular cliente para Internet Relay Chat (IRC).
[Section.040c]
Description = Le client le plus populaire pour l'Internet Relay Chat (IRC).
Size = 1,89 Mo
Size = 2,17 Mo
[Section.0410]
Description = Il famoso client per Internet Relay Chat (IRC).
@@ -34,12 +34,12 @@ Description = Najpopularniejszy klient IRC (Internet Relay Chat).
[Section.0418]
Licence = Versiune de evaluare
Description = Cel mai popular client de IRC (Internet Relay Chat).
Size = 1,89 Mo
Size = 2,17 Mo
[Section.041f]
Licence = Paylaşımlı
Description = Umûmî Ağ Eş Zamanlı Söyleşi (IRC) için en çok tutulan istemci.
Size = 1,89 MB
Size = 2,17 MB
[Section.0422]
Description = Найпопулярніший клієнт IRC (Internet Relay Chat).
@@ -1,12 +1,12 @@
[Section]
Name = NirLauncher
Version = 1.18.69
Version = 1.18.76
Licence = Freeware
Description = A package of more than 180 utilities for Windows.
Size = 19.8 MB
Category = 12
URLSite = http://launcher.nirsoft.net/
URLDownload = http://download.nirsoft.net/nirsoft_package_1.18.69.zip
URLDownload = http://download.nirsoft.net/nirsoft_package_1.18.76.zip
CDPath = none
[Section.0407]
+6 -6
View File
@@ -3,13 +3,13 @@
[Section]
Name = Notepad++
Version = 6.6.8
Version = 6.6.9
Licence = GPL
Description = A text editor.
Size = 7.55 MB
Size = 7.58 MB
Category = 6
URLSite = http://notepad-plus-plus.org/
URLDownload = http://download.tuxfamily.org/notepadplus/6.6.8/npp.6.6.8.Installer.exe
URLDownload = http://download.tuxfamily.org/notepadplus/6.6.9/npp.6.6.9.Installer.exe
CDPath = none
[Section.0407]
@@ -20,7 +20,7 @@ Description = Un editor de text.
[Section.040c]
Description = Un éditeur de texte.
Size = 7,55 Mo
Size = 7,58 Mo
URLSite = http://notepad-plus-plus.org/fr/
[Section.0410]
@@ -34,7 +34,7 @@ Description = Edytor tekstu.
[Section.0418]
Description = Un editor de text.
Size = 7,55 Mo
Size = 7,58 Mo
[Section.0419]
Description = Текстовый редактор.
@@ -44,7 +44,7 @@ Description = Textový editor.
[Section.041f]
Description = Bir metin düzenleyicisi.
Size = 7,55 MB
Size = 7,58 MB
[Section.0422]
Description = Текстовый редактор.
+20 -21
View File
@@ -3,69 +3,68 @@
[Section]
Name = OpenOffice 4.1
Version = 4.1.0
Version = 4.1.1
Licence = LGPL
Description = The open source office suite.
Size = 136.79 MB
Size = 140.9 MB
Category = 6
URLSite = http://www.openoffice.org/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/en-US/Apache_OpenOffice_4.1.0_Win_x86_install_en-US.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/en-US/Apache_OpenOffice_4.1.1_Win_x86_install_en-US.exe
CDPath = none
[Section.0407]
Description = DIE Open Source Office Suite.
Size = 154.88 MB
Size = 164.9 MB
URLSite = http://www.openoffice.org/de/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/de/Apache_OpenOffice_4.1.0_Win_x86_install_de.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/de/Apache_OpenOffice_4.1.1_Win_x86_install_de.exe
[Section.040a]
Description = La suite de ofimática de código abierto.
Size = 126.29 MB
Size = 130.4 MB
URLSite = http://www.openoffice.org/es/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/es/Apache_OpenOffice_4.1.0_Win_x86_install_es.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/es/Apache_OpenOffice_4.1.1_Win_x86_install_es.exe
[Section.040c]
Description = LA suite bureautique open source.
Size = 127,22 Mo
Size = 132,5 Mo
URLSite = http://www.openoffice.org/fr/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/fr/Apache_OpenOffice_4.1.0_Win_x86_install_fr.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/fr/Apache_OpenOffice_4.1.1_Win_x86_install_fr.exe
[Section.0410]
Description = La suite di office Open Source.
Size = 132.39 MB
Size = 136.3 MB
URLSite = http://www.openoffice.org/it/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/it/Apache_OpenOffice_4.1.0_Win_x86_install_it.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/it/Apache_OpenOffice_4.1.1_Win_x86_install_it.exe
[Section.0413]
Description = Open-bron Office Pakket.
Size = 132.11 MB
Size = 138.9 MB
URLSite = http://www.openoffice.org/nl/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/nl/Apache_OpenOffice_4.1.0_Win_x86_install_nl.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/nl/Apache_OpenOffice_4.1.1_Win_x86_install_nl.exe
[Section.0415]
Description = Otwarty pakiet biurowy.
Size = 127.47 MB
Size = 131.6 MB
URLSite = http://www.openoffice.org/pl/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/pl/Apache_OpenOffice_4.1.0_Win_x86_install_pl.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/pl/Apache_OpenOffice_4.1.1_Win_x86_install_pl.exe
[Section.0418]
Description = Suita de aplicații de birotică cu surse deschise.
Size = 136,79 Mo
Size = 140,9 Mo
URLSite = http://www.openoffice.org/ro/
[Section.041f]
Description = Bir açık kaynak ofis paketi.
Size = 124,36 MB
Size = 128,3 MB
URLSite = http://www.openoffice.org/tr/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/tr/Apache_OpenOffice_4.1.0_Win_x86_install_tr.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/tr/Apache_OpenOffice_4.1.1_Win_x86_install_tr.exe
[Section.0422]
Description = Відкритий офісний пакет.
Size = 136.79 MB
URLSite = http://www.openoffice.org/ua/
[Section.0813]
Description = Open-bron Office Pakket.
Size = 132.11 MB
Size = 138.9 MB
URLSite = http://www.openoffice.org/nl/
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.0/binaries/nl/Apache_OpenOffice_4.1.0_Win_x86_install_nl.exe
URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.1.1/binaries/nl/Apache_OpenOffice_4.1.1_Win_x86_install_nl.exe
+2 -2
View File
@@ -3,13 +3,13 @@
[Section]
Name = OpenTTD
Version = 1.4.1
Version = 1.4.2
Licence = GPL v2
Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon.
Size = 7.0 MB
Category = 4
URLSite = http://www.openttd.org/
URLDownload = http://binaries.openttd.org/releases/1.4.1/openttd-1.4.1-windows-win32.exe
URLDownload = http://binaries.openttd.org/releases/1.4.2/openttd-1.4.2-windows-win32.exe
CDPath = none
[Section.0407]
+2 -2
View File
@@ -3,13 +3,13 @@
[Section]
Name = PeaZip
Version = 5.4.0
Version = 5.4.1
Licence = LGPL v3, OpenCandy EULA
Description = PeaZip is a free, cross-platform, open source file and archive manager. It supports over 150 archive formats.
Size = 5.8 MB
Category = 12
URLSite = http://peazip.sourceforge.net/
URLDownload = http://download.sourceforge.net/project/peazip/5.4.0/peazip-5.4.0.WINDOWS.exe
URLDownload = http://download.sourceforge.net/project/peazip/5.4.1/peazip-5.4.1.WINDOWS.exe
CDPath = none
[Section.0407]
+2 -2
View File
@@ -4,13 +4,13 @@
[Section]
Name = PSPad
Version = 4.5.7
Version = 4.5.8
Licence = Freeware
Description = A text editor.
Size = 4.46 MB
Category = 6
URLSite = http://www.pspad.com
URLDownload = http://31.31.78.126/pspad/pspad457inst_en.exe
URLDownload = http://www.fosshub.com/download/pspad458instim_en.exe
CDPath = none
[Section.0407]
+5 -5
View File
@@ -4,13 +4,13 @@
[Section]
Name = Qmmp (Qt-based Multimedia Player)
Version = 0.8.0
Version = 0.8.1
Licence = GPL
Description = Qmmp is an audio-player, written with the help of the Qt library. The user interface is similar to WinAMP or XMMS. Alternative user interfaces also are available.
Size = 12.49 MB
Size = 12.51 MB
Category = 1
URLSite = http://qmmp.ylsoftware.com/
URLDownload = http://qmmp.ylsoftware.com/files/windows/qmmp-0.8.0-win32.exe
URLDownload = http://qmmp.ylsoftware.com/files/windows/qmmp-0.8.1-win32.exe
CDPath = none
[Section.0407]
@@ -25,7 +25,7 @@ Description = Gmmp to odtwarzacz audio, napisany z pomocą biblioteki Qt. Interf
[Section.0418]
Name = Qmmp (Lector Multimedia bazat pe Qt)
Description = Qmmp este un lector audio, ce utilizează biblioteca QT. Interfața de utilizare e asemănătoare cu cea din WinAMP sau XMMS. De asemenea sunt disponibile interfețe de utilizare alternative.
Size = 12,49 Mo
Size = 12,51 Mo
[Section.0419]
Description = Аудиоплеер Qmmp (Qt-based Multimedia Player).
@@ -33,4 +33,4 @@ Description = Аудиоплеер Qmmp (Qt-based Multimedia Player).
[Section.041f]
Name = Qmmp (Qt Tabanlı Çoklu Ortam Oynatıcısı)
Description = Qmmp, Qt kitaplığının yardımıyla yazılmış bir ses oynatıcısıdır. Kullanıcı arayüzü WinAMP'a ve XMMS'ye benzer. Başka kullanıcı arayüzleri de vardır.
Size = 12,49 MB
Size = 12,51 MB
+6 -6
View File
@@ -3,13 +3,13 @@
[Section]
Name = SciTE
Version = 3.4.4
Version = 3.5.0
Licence = Freeware
Description = SciTE is a SCIntilla based text editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs.
Size = 736 kB
Size = 742 kB
Category = 7
URLSite = http://www.scintilla.org/
URLDownload = http://download.sourceforge.net/project/scintilla/SciTE/3.4.4/Sc344.exe
URLDownload = http://download.sourceforge.net/project/scintilla/SciTE/3.5.0/Sc350.exe
CDPath = none
[Section.0407]
@@ -20,7 +20,7 @@ Description = Editor de texto basado en SCIntilla. Originalmente creado para dem
[Section.040c]
Description = SciTE est un éditeur de texte basé sur SCIntilla. Originelement réalisé pour montrer Scintilla, il a évolué pour devenir un éditeur généralement utile avec des options pour compiler et lancer des programmes.
Size = 736 ko
Size = 742 ko
[Section.0410]
Description = SciTE è un editor di testo basato su scintilla. Originariamente costruito per dimostrare Scintilla, è cresciuto fino a essere un editor generalmente utile con strutture per la creazione e l'esecuzione di programmi.
@@ -34,12 +34,12 @@ Description = SciTE to edytor tekstu bazowany na SCIntilla. Oryginalnie stworzon
[Section.0418]
Licence = Gratuită
Description = SciTE este un editor de text bazat pe SCIntilla. Construit inițial pentru a demonstra Scintilla, a crescut ulterior într-un editor de uz general cu funcționalități de compilare și execuție a programelor.
Size = 736 ko
Size = 742 ko
[Section.041f]
Licence = Ücretsiz
Description = SciTE, bir Scintilla tabanlı metin düzenleyicisidir. İlk başta Scintilla'yı göstermek için yapıldı; izlenceleri yapmak ve çalıştırmak yetenekleriyle, umûmiyetle kullanışlı bir düzenleyici olmak için gelişti.
Size = 736 KB
Size = 742 KB
[Section.0422]
Description = Текстовий редактор на основі SCIntilla. Був зібраний як презентація Scintilla, але виріс до редактора загального користування з засобами збирання та запуску програм.
+22 -22
View File
@@ -3,60 +3,60 @@
[Section]
Name = Mozilla SeaMonkey
Version = 2.26
Version = 2.29
Licence = MPL/GPL/LGPL
Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need.
Size = 23.90 MB
Size = 30.17 MB
Category = 5
URLSite = http://www.seamonkey-project.org/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/en-US/SeaMonkey%20Setup%202.26.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/en-US/SeaMonkey%20Setup%202.29.exe
CDPath = none
[Section.0407]
Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen.
Size = 23.80 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/de/SeaMonkey%20Setup%202.26.exe
Size = 30.05 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/de/SeaMonkey%20Setup%202.29.exe
[Section.040a]
Description = La suite de Mozilla está viva. Es el primero y único navegador web, gestor de correo, lector de noticias, Chat y editor HTML que necesitarás.
Size = 23.79 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/es-ES/SeaMonkey%20Setup%202.26.exe
Size = 30.03 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/es-ES/SeaMonkey%20Setup%202.29.exe
[Section.040c]
Description = La suite Mozilla est en vie. Ceci est le seul et l'unique package navigateur, client mail, client chat et composer dont vous aurez besoin.
Size = 24,06 Mo
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/fr/SeaMonkey%20Setup%202.26.exe
Size = 30,30 Mo
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/fr/SeaMonkey%20Setup%202.29.exe
[Section.0410]
Description = Mozilla Suite è vivo. Questo è l'unico pachetto che include Browser, Mail, Chat, e Composer di cui avrete mai bisogno...
Size = 23.71 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/it/SeaMonkey%20Setup%202.26.exe
Size = 29.97 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/it/SeaMonkey%20Setup%202.29.exe
[Section.0413]
Description = Mozilla Suite bundelt alle applicaties voor het Web: Browser, Mail, Chat, Composer.
Size = 24.40 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/nl/SeaMonkey%20Setup%202.26.exe
Size = 30.65 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/nl/SeaMonkey%20Setup%202.29.exe
[Section.0415]
Description = Pakiet Mozilla żyje. W zestawie: przeglądarka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz.
Size = 24.72 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/pl/SeaMonkey%20Setup%202.26.exe
Size = 30.96 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/pl/SeaMonkey%20Setup%202.29.exe
[Section.0418]
Description = Suita Mozilla. Acest pachet încorporează navigator, poștă electronică, client IRC și editor HTML, acoperind astfel o arie largă de necesități.
Size = 24,7 Mo
Size = 30,17 Mo
[Section.0419]
Description = Продолжение Mozilla Suite. Включает браузер, почтовый клиент, IRC-клиент и HTML-редактор.
Size = 24.27 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/ru/SeaMonkey%20Setup%202.26.exe
Size = 30.52 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/ru/SeaMonkey%20Setup%202.29.exe
[Section.041f]
Description = Mozilla Bohçası sağ. Bu, hiç gereksinim duymayacağınız, yalnızca Tarayıcı, Posta, Söyleşi ve Yazar bohçasıdır.
Size = 23,83 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/tr/SeaMonkey%20Setup%202.26.exe
Size = 30,02 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/tr/SeaMonkey%20Setup%202.29.exe
[Section.0422]
Description = Продовження Mozilla Suite. Включає в себе браузер, поштовий клієнт, IRC-клієнт та HTML-редактор.
Size = 24.27 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.26/win32/ru/SeaMonkey%20Setup%202.26.exe
Size = 30.52 MB
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.29/win32/ru/SeaMonkey%20Setup%202.29.exe
+2 -2
View File
@@ -3,13 +3,13 @@
[Section]
Name = SMPlayer
Version = 14.3.0
Version = 14.9.0
Licence = GPL
Description = Graphical Frontend for MPlayer.
Size = 20.7 MB
Category = 2
URLSite = http://smplayer.sourceforge.net/en/
URLDownload = http://download.sourceforge.net/project/smplayer/SMPlayer/14.3.0/smplayer-14.3.0-oc2-win32.exe
URLDownload = http://download.sourceforge.net/project/smplayer/SMPlayer/14.9.0/smplayer-14.9.0-win32.exe
CDPath = none
[Section.0407]
+13 -13
View File
@@ -3,77 +3,77 @@
[Section]
Name = Mozilla Thunderbird 31
Version = 31.0
Version = 31.1.1
Licence = MPL/GPL/LGPL
Description = The most popular and one of the best free Mail Clients out there.
Size = 25.25 MB
Category = 5
URLSite = https://www.mozilla.org/en-US/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/en-US/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/en-US/Thunderbird%20Setup%2031.1.1.exe
CDPath = none
[Section.0407]
Description = Der populärste und einer der besten freien Mail-Clients.
Size = 25.09 MB
URLSite = https://www.mozilla.org/de/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/de/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/de/Thunderbird%20Setup%2031.1.1.exe
[Section.040a]
Description = El más popular y uno de los mejores clientes mail que hay.
Size = 25.04 MB
URLSite = https://www.mozilla.org/es-ES/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/es-ES/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/es-ES/Thunderbird%20Setup%2031.1.1.exe
[Section.040c]
Description = Le plus populaire et l'un des meilleurs clients mail gratuits disponible.
Size = 25,39 Mo
URLSite = https://www.mozilla.org/fr/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/fr/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/fr/Thunderbird%20Setup%2031.1.1.exe
[Section.0410]
Description = Il più popolare e il migliore Client mail gratuito.
Size = 25.04 MB
URLSite = https://www.mozilla.org/it/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/it/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/it/Thunderbird%20Setup%2031.1.1.exe
[Section.0413]
Description = De meest populaire en een van de beste gratis e-mail-programma's.
Size = 25.73 MB
URLSite = https://www.mozilla.org/nl/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/nl/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/nl/Thunderbird%20Setup%2031.1.1.exe
[Section.0415]
Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty.
Size = 25.95 MB
URLSite = https://www.mozilla.org/pl/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/pl/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/pl/Thunderbird%20Setup%2031.1.1.exe
[Section.0418]
Description = Cel mai popular și unul dintre cele mai bune clientele gratuite de poștă electronică.
Size = 25,61 Mo
URLSite = https://www.mozilla.org/ro/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/ro/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/ro/Thunderbird%20Setup%2031.1.1.exe
[Section.0419]
Description = Один из самых популярных и лучших бесплатных почтовых клиентов.
Size = 25.5 MB
URLSite = https://www.mozilla.org/ru/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/ru/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/ru/Thunderbird%20Setup%2031.1.1.exe
[Section.041f]
Description = Özgür posta istemcileri arasında en tutulanı ve en iyilerinden biri.
Size = 25,12 MB
URLSite = https://www.mozilla.org/tr/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/tr/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/tr/Thunderbird%20Setup%2031.1.1.exe
[Section.0422]
Description = Найпопулярніший та один з кращих поштових клієнтів.
Size = 25.54 MB
URLSite = https://www.mozilla.org/uk/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/uk/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/uk/Thunderbird%20Setup%2031.1.1.exe
[Section.0813]
Description = De meest populaire en een van de beste gratis e-mail-programma's.
Size = 25.73 MB
URLSite = https://www.mozilla.org/nl/thunderbird/
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.0/win32/nl/Thunderbird%20Setup%2031.0.exe
URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.1.1/win32/nl/Thunderbird%20Setup%2031.1.1.exe
+6 -6
View File
@@ -3,13 +3,13 @@
[Section]
Name = TuxPaint
Version = 0.9.21c
Version = 0.9.22
Licence = GPL
Description = An open source bitmap graphics editor geared towards young children.
Size = 10.42 MB
Size = 13.5 MB
Category = 3
URLSite = http://tuxpaint.org/
URLDownload = http://download.sourceforge.net/project/tuxpaint/tuxpaint/0.9.21c/tuxpaint-0.9.21c-win32-installer.exe
URLDownload = http://download.sourceforge.net/project/tuxpaint/tuxpaint/0.9.22/tuxpaint-0.9.22-win32-installer.exe
CDPath = none
[Section.0405]
@@ -23,7 +23,7 @@ Description = Editor gráfico de imágenes pensado para niños de código abiert
[Section.040c]
Description = Un éditeur graphic bitmap open source orienté pour les jeunes enfants.
Size = 10,42 Mo
Size = 13,5 Mo
[Section.0410]
Description = Un editore grafico per bitmap open source creato per i bambini.
@@ -36,11 +36,11 @@ Description = Otwarty program graficzny przeznaczony głównie dla dzieci.
[Section.0418]
Description = Un editor grafic bitmap, adresat copiilor.
Size = 10,42 Mo
Size = 13,5 Mo
[Section.041f]
Description = Küçük çocuklar için yapılmış bir açık kaynak bit eşlem çizge düzenleyicisi.
Size = 10,42 MB
Size = 13,5 MB
[Section.0422]
Description = Відкритий графічний редактор для малих дітей.
+6 -6
View File
@@ -3,13 +3,13 @@
[Section]
Name = UltraVNC
Version = 1.1.9.0
Version = 1.2.0.1
Licence = GPL
Description = Open source VNC client/server.
Size = 3.27 MB
Size = 3.29 MB
Category = 5
URLSite = http://www.uvnc.com/
URLDownload = http://support1.uvnc.com/download/1190/UltraVNC_1_1_9_X86_Setup.exe
URLDownload = http://support1.uvnc.com/download/1201/UltraVNC_1_2_01_X86_Setup.exe
CDPath = none
[Section.0407]
@@ -20,7 +20,7 @@ Description = Cliente/Servidor VNC de código abierto.
[Section.040c]
Description = Client/serveur VNC open source.
Size = 3,27 Mo
Size = 3,29 Mo
[Section.0410]
Description = Client/server VNC open source.
@@ -33,11 +33,11 @@ Description = Otwarty klient/serwer VNC.
[Section.0418]
Description = Client/server VNC (cu surse deschise).
Size = 3,27 Mo
Size = 3,29 Mo
[Section.041f]
Description = Açık kaynak VNC istemcisi ve sunucusu.
Size = 3,27 MB
Size = 3,29 MB
[Section.0422]
Description = Відкритий VNC клієнт/сервер.
+6 -6
View File
@@ -10,11 +10,11 @@ END
IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ses Kaydedicisi Üzerine"
CAPTION "Ses Saklayıcısı Üzerine"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDI_SNDREC32, -1, 19, 14, 21, 20
LTEXT "Ses Kaydedicisi: Sürüm 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX
LTEXT "Ses Saklayıcısı: Sürüm 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX
LTEXT "Tekif Hakkı - 2009", IDC_STATIC, 56, 25, 114, 8
DEFPUSHBUTTON "Tamam", IDOK, 139, 54, 50, 14, WS_GROUP
END
@@ -25,8 +25,8 @@ BEGIN
BEGIN
MENUITEM "&Yeni", ID_FILE_NEW
MENUITEM "&Aç...", ID_FILE_OPEN
MENUITEM "&Kaydet", ID_FILE_SAVE, GRAYED
MENUITEM "Ay&rı Kaydet...", ID_FILE_SAVEAS, GRAYED
MENUITEM "&Sakla", ID_FILE_SAVE, GRAYED
MENUITEM "Ay&rı Sakla...", ID_FILE_SAVEAS, GRAYED
MENUITEM "Y&eniden Yükle...", ID_FILE_RESTORE, GRAYED
MENUITEM "&Husûsiyetler", ID_FILE_PROPERTIES
MENUITEM SEPARATOR
@@ -44,7 +44,7 @@ BEGIN
MENUITEM "&Şimdiki Konumun Öncesini Sil",ID_EDIT_DELETEBEFORE, GRAYED
MENUITEM "Ş&imdiki Konumun Sonrasını Sil",ID_EDIT_DELETEAFTER, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Ses Husûsîyetleri", ID_EDIT_AUDIOPROPS
MENUITEM "&Ses Husûsiyetleri", ID_EDIT_AUDIOPROPS
END
POPUP "&Etkiler"
BEGIN
@@ -65,7 +65,7 @@ END
STRINGTABLE
BEGIN
IDS_APP_TITLE "Ses Kaydedicisi"
IDS_APP_TITLE "Ses Saklayıcısı"
IDC_REACTOS_SNDREC32 "REACTOS_SNDREC32"
END
+1 -1
View File
@@ -34,7 +34,7 @@ BEGIN
COMBOBOX IDC_MIXERDEVICE, 55, 8, 162, 80, CBS_DROPDOWNLIST | WS_TABSTOP
GROUPBOX "Ses Düzeyi Düzenlenecekler", -1, 7, 25, 211, 77
PUSHBUTTON "&Çalma", IDC_PLAYBACK, 13, 43, 47, 8, BS_AUTORADIOBUTTON
PUSHBUTTON "K&aydetme", IDC_RECORDING, 13, 61, 47, 8, BS_AUTORADIOBUTTON
PUSHBUTTON "&Saklama", IDC_RECORDING, 13, 61, 47, 8, BS_AUTORADIOBUTTON
PUSHBUTTON "&Başka:", IDC_OTHER, 13, 80, 42, 8, BS_AUTORADIOBUTTON | WS_DISABLED
COMBOBOX IDC_LINE, 55, 80, 155, 50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED
LTEXT "Aşağıdaki ses düzeyi denetimlerini göster:", IDC_LABELCONTROLS, 7, 109, 162, 8
+1 -1
View File
@@ -428,7 +428,7 @@ BEGIN
IDS_MSG_UNABLEDEBUGPROCESS "Yanlışlık Ayıklama İşleminin Yapılamaması"
IDS_MSG_WARNINGDEBUG "UYARI: Bu işlemde yanlışlık ayıklama veri yitimiyle sonuçlanabilir.\nYanlışlık ayıklayıcı bağlamak istediğinizden emin misiniz?"
IDS_MSG_TASKMGRWARNING "Görev Yöneticisi Uyarısı"
IDS_MSG_WARNINGTERMINATING "UYARI: Bir işlemin sonlandırılması, veri\nyitimi ve dizge kararsızlığını içeren istenmeyen sonuçlara neden\nolabilir. İşlem sonlandırılmadan önce durumunu veyâ verisini\nkaydetme fırsatı verilmeyecektir. İşlemi\nsonlandırmak istediğinizden emin misiniz?"
IDS_MSG_WARNINGTERMINATING "UYARI: Bir işlemin sonlandırılması, veri\nyitimi ve dizge kararsızlığını içeren istenmeyen sonuçlara neden\nolabilir. İşlem sonlandırılmadan önce durumunu veyâ verisini\nsaklama fırsatı verilmeyecektir. İşlemi\nsonlandırmak istediğinizden emin misiniz?"
IDS_MSG_UNABLETERMINATEPRO "İşlem Sonlandırmanın Yapılamaması"
IDS_MSG_UNABLECHANGEPRIORITY "Önceliğin Değiştirilememesi"
IDS_MSG_WARNINGCHANGEPRIORITY "UYARI: Bu işlemin öncelik sınıfının değiştirilmesi, dizge\nkararsızlığını içeren istenmeyen sonuçlara neden olabilir. Öncelik \nsınıfını değiştirmek istediğinizden emin misiniz?"
+7 -7
View File
@@ -28,12 +28,12 @@ BEGIN
BEGIN
MENUITEM "&Yeni...\tCtrl+N", ID_FILE_NEW
MENUITEM "&Aç...\tCtrl+O", ID_FILE_OPEN
MENUITEM "&Kaydet\tCtrl+S", ID_FILE_SAVE
MENUITEM "Ay&rı Kaydet...", ID_FILE_SAVEAS
MENUITEM "&Sakla\tCtrl+S", ID_FILE_SAVE
MENUITEM "Ay&rı Sakla...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Ya&zdır...\tCtrl+P", ID_PRINT
MENUITEM "&Baskı Ön İzlemesi...", ID_PREVIEW
MENUITEM "&Sayfa Ayarla...", ID_PRINTSETUP
MENUITEM "Say&fa Ayarla...", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "&Çıkış", ID_FILE_EXIT
END
@@ -250,14 +250,14 @@ END
STRINGTABLE
BEGIN
STRING_DEFAULT_FILENAME, "Belge"
STRING_PROMPT_SAVE_CHANGES, "%s için değişiklikler kaydedilsin mi?"
STRING_PROMPT_SAVE_CHANGES, "%s için değişiklikler saklansın mi?"
STRING_SEARCH_FINISHED, "Belge araması bitti."
STRING_LOAD_RICHED_FAILED, "Zengin metin kitaplığının yüklenmesi başarısız oldu."
STRING_SAVE_LOSEFORMATTING, "Tüm biçimlendirmelerin yitirilmesine neden olacağı düz metin biçimiyle kaydetmeyi seçtiniz. Bunu yapmak istediğinizden emin misiniz?"
STRING_SAVE_LOSEFORMATTING, "Tüm biçimlendirmelerin yitirilmesine neden olacağı düz metin biçimiyle saklamayı seçtiniz. Bunu yapmak istediğinizden emin misiniz?"
STRING_INVALID_NUMBER, "Geçersiz sayı biçimi."
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE içeren belgeler desteklenmiyor."
STRING_WRITE_FAILED, "Kütük kaydedilemedi."
STRING_WRITE_ACCESS_DENIED, "Bu kütüğü kaydetme yetkiniz yok."
STRING_WRITE_FAILED, "Kütük saklanamadı."
STRING_WRITE_ACCESS_DENIED, "Bu kütüğü saklama yetkiniz yok."
STRING_OPEN_FAILED, "Kütük açılamadı."
STRING_OPEN_ACCESS_DENIED, "Bu kütüğü açma yetkiniz yok."
STRING_PRINTING_NOT_IMPLEMENTED, "Yazdırma seçeneği daha bitirilmemiştir."
+23 -2
View File
@@ -106,7 +106,7 @@ ServiceControlHandler(DWORD dwControl,
UpdateServiceStatus(SERVICE_STOPPED);
return ERROR_SUCCESS;
default :
default:
DPRINT1(" Control %lu received\n", dwControl);
return ERROR_CALL_NOT_IMPLEMENTED;
}
@@ -275,6 +275,7 @@ PLOGFILE LoadLogFile(HKEY hKey, WCHAR * LogName)
LONG Result;
PLOGFILE pLogf = NULL;
UNICODE_STRING FileName;
ULONG ulMaxSize, ulRetention;
NTSTATUS Status;
DPRINT("LoadLogFile: %S\n", LogName);
@@ -333,7 +334,27 @@ PLOGFILE LoadLogFile(HKEY hKey, WCHAR * LogName)
DPRINT("%S -> %S\n", Buf, Expanded);
Status = LogfCreate(&pLogf, LogName, &FileName, TRUE, FALSE);
ValueLen = sizeof(ULONG);
Result = RegQueryValueEx(hKey,
L"MaxSize",
NULL,
&Type,
(LPBYTE)&ulMaxSize,
&ValueLen);
if (Result != ERROR_SUCCESS)
ulMaxSize = 512 * 1024; /* 512 kBytes */
ValueLen = sizeof(ULONG);
Result = RegQueryValueEx(hKey,
L"Retention",
NULL,
&Type,
(LPBYTE)&ulRetention,
&ValueLen);
if (Result != ERROR_SUCCESS)
ulRetention = 0;
Status = LogfCreate(&pLogf, LogName, &FileName, ulMaxSize, ulRetention, TRUE, FALSE);
if (!NT_SUCCESS(Status))
{
DPRINT1("Failed to create %S! (Status %08lx)\n", Expanded, Status);
+2
View File
@@ -156,6 +156,8 @@ NTSTATUS
LogfCreate(PLOGFILE *Logfile,
WCHAR * LogName,
PUNICODE_STRING FileName,
ULONG ulMaxSize,
ULONG ulRetention,
BOOL Permanent,
BOOL Backup);
+58 -41
View File
@@ -24,62 +24,78 @@ static CRITICAL_SECTION LogFileListCs;
/* FUNCTIONS ****************************************************************/
static NTSTATUS
LogfInitializeNew(PLOGFILE LogFile)
LogfInitializeNew(PLOGFILE LogFile,
ULONG ulMaxSize,
ULONG ulRetention)
{
DWORD dwWritten;
IO_STATUS_BLOCK IoStatusBlock;
EVENTLOGEOF EofRec;
NTSTATUS Status;
ZeroMemory(&LogFile->Header, sizeof(EVENTLOGHEADER));
SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN);
SetEndOfFile(LogFile->hFile);
LogFile->Header.HeaderSize = sizeof(EVENTLOGHEADER);
LogFile->Header.EndHeaderSize = sizeof(EVENTLOGHEADER);
LogFile->Header.StartOffset = sizeof(EVENTLOGHEADER);
LogFile->Header.EndOffset = sizeof(EVENTLOGHEADER);
LogFile->Header.Signature = LOGFILE_SIGNATURE;
LogFile->Header.MajorVersion = MAJORVER;
LogFile->Header.MinorVersion = MINORVER;
LogFile->Header.StartOffset = sizeof(EVENTLOGHEADER);
LogFile->Header.EndOffset = sizeof(EVENTLOGHEADER);
LogFile->Header.CurrentRecordNumber = 1;
LogFile->Header.OldestRecordNumber = 1;
/* FIXME: Read MaxSize from registry for this LogFile.
But for now limit EventLog size to just under 5K. */
LogFile->Header.MaxSize = 5000;
LogFile->Header.Signature = LOGFILE_SIGNATURE;
if (!WriteFile(LogFile->hFile,
&LogFile->Header,
sizeof(EVENTLOGHEADER),
&dwWritten,
NULL))
LogFile->Header.MaxSize = ulMaxSize;
LogFile->Header.Flags = 0;
LogFile->Header.Retention = ulRetention;
LogFile->Header.EndHeaderSize = sizeof(EVENTLOGHEADER);
Status = NtWriteFile(LogFile->hFile,
NULL,
NULL,
NULL,
&IoStatusBlock,
&LogFile->Header,
sizeof(EVENTLOGHEADER),
NULL,
NULL);
if (!NT_SUCCESS(Status))
{
DPRINT1("WriteFile failed:%d!\n", GetLastError());
return STATUS_UNSUCCESSFUL;
DPRINT1("NtWriteFile failed (Status 0x%08lx)\n", Status);
return Status;
}
EofRec.RecordSizeBeginning = sizeof(EVENTLOGEOF);
EofRec.Ones = 0x11111111;
EofRec.Twos = 0x22222222;
EofRec.Threes = 0x33333333;
EofRec.Fours = 0x44444444;
EofRec.RecordSizeBeginning = sizeof(EVENTLOGEOF);
EofRec.RecordSizeEnd = sizeof(EVENTLOGEOF);
EofRec.CurrentRecordNumber = LogFile->Header.CurrentRecordNumber;
EofRec.OldestRecordNumber = LogFile->Header.OldestRecordNumber;
EofRec.BeginRecord = LogFile->Header.StartOffset;
EofRec.EndRecord = LogFile->Header.EndOffset;
EofRec.CurrentRecordNumber = LogFile->Header.CurrentRecordNumber;
EofRec.OldestRecordNumber = LogFile->Header.OldestRecordNumber;
EofRec.RecordSizeEnd = sizeof(EVENTLOGEOF);
if (!WriteFile(LogFile->hFile,
&EofRec,
sizeof(EVENTLOGEOF),
&dwWritten,
NULL))
Status = NtWriteFile(LogFile->hFile,
NULL,
NULL,
NULL,
&IoStatusBlock,
&EofRec,
sizeof(EVENTLOGEOF),
NULL,
NULL);
if (!NT_SUCCESS(Status))
{
DPRINT1("WriteFile failed:%d!\n", GetLastError());
return STATUS_UNSUCCESSFUL;
DPRINT1("NtWriteFile failed (Status 0x%08lx)\n", Status);
return Status;
}
if (!FlushFileBuffers(LogFile->hFile))
Status = NtFlushBuffersFile(LogFile->hFile,
&IoStatusBlock);
if (!NT_SUCCESS(Status))
{
DPRINT1("FlushFileBuffers failed:%d!\n", GetLastError());
return STATUS_UNSUCCESSFUL;
DPRINT1("NtFlushBuffersFile failed (Status 0x%08lx)\n", Status);
return Status;
}
return STATUS_SUCCESS;
@@ -87,7 +103,8 @@ LogfInitializeNew(PLOGFILE LogFile)
static NTSTATUS
LogfInitializeExisting(PLOGFILE LogFile, BOOL Backup)
LogfInitializeExisting(PLOGFILE LogFile,
BOOL Backup)
{
DWORD dwRead;
DWORD dwRecordsNumber = 0;
@@ -265,10 +282,6 @@ LogfInitializeExisting(PLOGFILE LogFile, BOOL Backup)
if (LogFile->Header.CurrentRecordNumber == 0)
LogFile->Header.CurrentRecordNumber = 1;
/* FIXME: Read MaxSize from registry for this LogFile.
But for now limit EventLog size to just under 5K. */
LogFile->Header.MaxSize = 5000;
if (!Backup)
{
if (SetFilePointer(LogFile->hFile, 0, NULL, FILE_BEGIN) ==
@@ -301,8 +314,10 @@ LogfInitializeExisting(PLOGFILE LogFile, BOOL Backup)
NTSTATUS
LogfCreate(PLOGFILE *LogFile,
WCHAR * LogName,
WCHAR *LogName,
PUNICODE_STRING FileName,
ULONG ulMaxSize,
ULONG ulRetention,
BOOL Permanent,
BOOL Backup)
{
@@ -355,7 +370,7 @@ LogfCreate(PLOGFILE *LogFile,
goto fail;
}
if(LogName)
if (LogName)
StringCchCopy(pLogFile->LogName,lstrlenW(LogName) + 1, LogName);
pLogFile->FileName =
@@ -387,7 +402,7 @@ LogfCreate(PLOGFILE *LogFile,
pLogFile->Permanent = Permanent;
if (bCreateNew)
Status = LogfInitializeNew(pLogFile);
Status = LogfInitializeNew(pLogFile, ulMaxSize, ulRetention);
else
Status = LogfInitializeExisting(pLogFile, Backup);
@@ -1117,7 +1132,9 @@ LogfClearFile(PLOGFILE LogFile,
}
}
Status = LogfInitializeNew(LogFile);
Status = LogfInitializeNew(LogFile,
LogFile->Header.MaxSize,
LogFile->Header.Retention);
if (!NT_SUCCESS(Status))
{
DPRINT1("LogfInitializeNew failed (Status: 0x%08lx)\n", Status);
@@ -1145,7 +1162,7 @@ LogfBackupFile(PLOGFILE LogFile,
DWORD dwOffset, dwRead, dwRecSize;
DPRINT("LogfBackupFile(%p, %wZ)\n", LogFile, BackupFileName);
DPRINT1("LogfBackupFile(%p, %wZ)\n", LogFile, BackupFileName);
/* Lock the log file shared */
RtlAcquireResourceShared(&LogFile->Lock, TRUE);
@@ -1182,7 +1199,7 @@ LogfBackupFile(PLOGFILE LogFile,
Header.EndOffset = sizeof(EVENTLOGHEADER);
Header.CurrentRecordNumber = 1;
Header.OldestRecordNumber = 1;
Header.MaxSize = 0;
Header.MaxSize = LogFile->Header.MaxSize;
Header.Flags = ELF_LOGFILE_HEADER_DIRTY;
Header.Retention = LogFile->Header.Retention;
Header.EndHeaderSize = sizeof(EVENTLOGHEADER);
+2
View File
@@ -162,6 +162,8 @@ ElfCreateBackupLogHandle(PLOGHANDLE *LogHandle,
Status = LogfCreate(&lpLogHandle->LogFile,
NULL,
FileName,
0,
0,
FALSE,
TRUE);
if (!NT_SUCCESS(Status))
+1 -1
View File
@@ -36,7 +36,7 @@ BEGIN
IDS_REACTOSISSHUTTINGDOWN "ReactOS Kapatılıyor..."
IDS_PREPARETOSTANDBY "Uykuya Anıklanıyor..."
IDS_PREPARETOHIBERNATE "Anıkta Beklemeye Anıklanıyor..."
IDS_SAVEYOURSETTINGS "Ayarlarınız Kaydediliyor..."
IDS_SAVEYOURSETTINGS "Ayarlarınız Saklanıyor..."
IDS_REACTOSISSTARTINGUP "ReactOS Başlatılıyor..."
END
+1
View File
@@ -49,6 +49,7 @@ HKLM,"SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\DefaultIcon","",0x00000000
HKLM,"SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command","",0x00000000,"%programfiles%\Internet Explorer\iexplore.exe"
; DirectX
HKLM,"SOFTWARE\Microsoft\DirectX","InstalledVersion",0x00000001, 0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00
HKLM,"SOFTWARE\Microsoft\DirectX","Version",0x00000000,"4.09.00.0904"
; RPC
+21 -6
View File
@@ -1438,10 +1438,18 @@ HKLM,"SYSTEM\CurrentControlSet\Services\EventLog","Type",0x00010001,0x00000010
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Application",,0x00000010
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Application","File",0x00020000,"%SystemRoot%\system32\config\AppEvent.Evt"
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Application","MaxSize",0x00010003,524288
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Application","Retention",0x00010003,604800
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Security",,0x00000010
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Security","File",0x00020000,"%SystemRoot%\system32\config\SecEvent.Evt"
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Security","MaxSize",0x00010003,524288
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\Security","Retention",0x00010003,604800
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System",,0x00000010
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System","File",0x00020000,"%SystemRoot%\system32\config\SysEvent.Evt"
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System","MaxSize",0x00010003,524288
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System","Retention",0x00010003,604800
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System\EventLog","EventMessageFile",0x00020000,"%SystemRoot%\system32\netevent.dll"
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System\EventLog","TypesSupported",0x00010001,0x00000007
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System\Service Control Manager","EventMessageFile",0x00020000,"%SystemRoot%\system32\netevent.dll"
@@ -1470,6 +1478,13 @@ HKLM,"SYSTEM\CurrentControlSet\Services\kbdclass","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\kbdclass\Parameters","ConnectMultiplePorts",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}","UpperFilters",0x00010000,"kbdclass"
; Kernel Security Support Provider Interface Driver
HKLM,"SYSTEM\CurrentControlSet\Services\ksecdd","ErrorControl",0x00010001,0x00000003
HKLM,"SYSTEM\CurrentControlSet\Services\ksecdd","Group",0x00000000,"Base"
HKLM,"SYSTEM\CurrentControlSet\Services\ksecdd","ImagePath",0x00020000,"system32\drivers\ksecdd.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\ksecdd","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\ksecdd","Type",0x00010001,0x00000001
; MPU-401 MIDI driver
HKLM,"SYSTEM\CurrentControlSet\Services\mpu401","Group",0x00000000,"Base"
HKLM,"SYSTEM\CurrentControlSet\Services\mpu401","ServiceType",0x00010001,0x00000001
@@ -1623,12 +1638,12 @@ HKLM,"SYSTEM\CurrentControlSet\Services\usbccgp","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\usbccgp","Type",0x00010001,0x00000001
; MountMgr driver
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","ErrorControl",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Group",0x00000000,"Boot Bus Extender"
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","ImagePath",0x00020000,"system32\drivers\mountmgr.sys"
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Start",0x00010001,0x00000000
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Tag",0x00010001,0x00000008
;HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Group",0x00000000,"Boot Bus Extender"
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","ImagePath",0x00020000,"system32\drivers\mountmgr.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Tag",0x00010001,0x00000008
HKLM,"SYSTEM\CurrentControlSet\Services\MountMgr","Type",0x00010001,0x00000001
; ACPI driver
HKLM,"SYSTEM\CurrentControlSet\Services\acpi","ErrorControl",0x00010001,0x00000001
+1
View File
@@ -61,6 +61,7 @@ swenum.sys=,,,,,,,,,,,,4
ntdll.dll=,,,,,,,,,,,,2
wmilib.sys=,,,,,,,,,,,,4
ksecdd.sys=,,,,,,,,,,,,4
mountmgr.sys=,,,,,,x,,,,,,4
[HardwareIdsDatabase]
;*PNP0A00 = isapnp
+4 -1
View File
@@ -43,6 +43,9 @@ if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_COMPILE_OPTIONS_PIE "")
set(CMAKE_SHARED_LIBRARY_C_FLAGS "")
set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "")
set(CMAKE_ASM_FLAGS_DEBUG "")
set(CMAKE_C_FLAGS_DEBUG "")
set(CMAKE_CXX_FLAGS_DEBUG "")
endif()
if(DBG)
@@ -68,7 +71,7 @@ endif()
# Debugging
if(SEPARATE_DBG)
add_compile_flags("-gdwarf-4 -fvar-tracking-assignments")
add_compile_flags("-gdwarf-2 -ggdb")
else()
add_compile_flags("-gdwarf-2 -gstrict-dwarf")
if(NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
+1 -1
View File
@@ -141,7 +141,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "&Husûsiyetleri Yalnızca Şimdiki Pencereye Uygula", IDC_RADIO_APPLY_CURRENT,
"Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 12, 12, 207, 10
CONTROL "H&usûsiyetleri Aynı Başlıktaki Gelecek Pencereler İçin Kaydet", IDC_RADIO_APPLY_ALL,
CONTROL "H&usûsiyetleri Aynı Başlıktaki Gelecek Pencereler İçin Sakla", IDC_RADIO_APPLY_ALL,
"Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 12, 31, 207, 10
PUSHBUTTON "Tamam", IDOK, 58, 58, 50, 14, WS_VISIBLE
PUSHBUTTON "İptal", IDCANCEL, 114, 58, 50, 14, WS_VISIBLE
+3 -3
View File
@@ -39,7 +39,7 @@ BEGIN
PUSHBUTTON "&Ön Tanımlı Sayfa", IDC_HOME_DEFAULT, 144, 36, 80, 14
PUSHBUTTON "&Boş Sayfa", IDC_HOME_BLANK, 230, 36, 80, 14
GROUPBOX " Tarama Geçmişi ", IDC_STATIC, 4, 60, 312, 46
LTEXT "Saklanan sayfaları, çerezleri ve başka verileri silebilirsiniz.",
LTEXT "Saklanan sayfaları, tanımlama bilgilerini ve başka verileri silebilirsiniz.",
IDC_STATIC, 58, 72, 252, 10
PUSHBUTTON "&Kütükleri Sil...", IDC_HISTORY_DELETE, 144, 86, 80, 14
PUSHBUTTON "&Ayarlar...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14
@@ -55,13 +55,13 @@ BEGIN
AUTOCHECKBOX "&Geçici Umûmî Ağ Kütüleri:\nUmûmî Ağ sayfalarının, resimlerin ve onay belgelerinin saklanmış kopyaları.",
IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE
AUTOCHECKBOX "&Çerezler:\nUmûmî Ağ siteleri eliyle bilgisayarınıza kaydedilmiş, kullanıcı yeğlemeleri ve oturum açma bilgileri gibi şeyleri saklayan kütükler.",
AUTOCHECKBOX "&Tanımlama Bilgileri:\nUmûmî Ağ siteleri eliyle bilgisayarınıza saklanmış, kullanıcı yeğlemeleri ve oturum açma bilgileri gibi şeyleri saklayan kütükler.",
IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE
AUTOCHECKBOX "G&eçmiş:\nEriştiğiniz Umûmî Ağ sitelerinin dizelgesi.",
IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE
AUTOCHECKBOX "&Form Verileri:\nFormlarda girdiğiniz kullanıcı adlarıyla başka bilgiler.",
IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE
AUTOCHECKBOX "&Şifreler:\nFormlarda girdiğiniz kaydedilmiş şifreler.",
AUTOCHECKBOX "&Şifreler:\nFormlarda girdiğiniz saklanmış şifreler.",
IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE
DEFPUSHBUTTON "İptal", IDCANCEL, 185, 230, 60, 15, WS_GROUP
PUSHBUTTON "Sil", IDOK, 120, 230, 60, 15, WS_GROUP
+3 -3
View File
@@ -76,7 +76,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Düzen", -1, 5, 5, 181, 45
COMBOBOX IDC_COMBO_CURSOR_SCHEME, 12, 15, 167, 200, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "&Ayrı Kaydet...", IDC_BUTTON_SAVEAS_SCHEME, 65, 31, 60, 14
PUSHBUTTON "&Ayrı Sakla...", IDC_BUTTON_SAVEAS_SCHEME, 65, 31, 60, 14
PUSHBUTTON "&Sil", IDC_BUTTON_DELETE_SCHEME, 128, 31, 50, 14
CONTROL "", IDC_IMAGE_CURRENT_CURSOR, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 196, 9, 45, 41, WS_EX_STATICEDGE
LTEXT "&Husûsileştir", -1, 5, 57, 60, 10
@@ -88,10 +88,10 @@ END
IDD_CURSOR_SCHEME_SAVEAS DIALOGEX 0, 0, 192, 53
STYLE DS_SHELLFONT | WS_CAPTION | WS_SYSMENU
CAPTION "Düzeni Kaydet"
CAPTION "Düzeni Sakla"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bu imleç düzenini ayrı kaydet:", -1, 5, 5, 181, 10
LTEXT "Bu imleç düzenini ayrı sakla:", -1, 5, 5, 181, 10
EDITTEXT IDC_EDIT_SCHEME_NAME, 5, 15, 180, 15, WS_CHILD | WS_VISIBLE | WS_GROUP
PUSHBUTTON "Tamam", IDOK, 63, 35, 60, 14
PUSHBUTTON "İptal", IDCANCEL, 126, 35, 60, 14
+10 -10
View File
@@ -29,12 +29,12 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Sesler"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bir ses düzeni, ReactOS'taki ve izlencelerdeki olaylara uygulayan bir ses kümesidir. Var olan bir düzeni seçebilir veyâ değiştirdiğinizi kaydedebilirsiniz.", -1, 8, 7, 230, 30
LTEXT "Bir ses düzeni, ReactOS'taki ve izlencelerdeki olaylara uygulayan bir ses kümesidir. Var olan bir düzeni seçebilir veyâ değiştirdiğinizi saklayabilirsiniz.", -1, 8, 7, 230, 30
LTEXT "&Ses Düzeni:", -1, 8, 42, 150, 9
COMBOBOX IDC_SOUND_SCHEME, 8, 53, 230, 46, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "&Ayrı Kaydet...", IDC_SAVEAS_BTN, 134, 70, 50, 15
PUSHBUTTON "&Ayrı Sakla...", IDC_SAVEAS_BTN, 134, 70, 50, 15
PUSHBUTTON "S&il", IDC_DELETE_BTN, 188, 70, 50, 15
LTEXT "Sesleri değiştirmek için aşağıdaki dizelgede bir izlence olayına tıklayınız, sonra uygulamak için bir ses seçiniz. Değişiklikleri yeni bir ses düzeni olarak kaydedebilirsiniz.", -1, 8, 90, 230, 27
LTEXT "Sesleri değiştirmek için aşağıdaki dizelgede bir izlence olayına tıklayınız, sonra uygulamak için bir ses seçiniz. Değişiklikleri yeni bir ses düzeni olarak saklayabilirsiniz.", -1, 8, 90, 230, 27
LTEXT "İ&zlence Olayları:", -1, 8, 118, 150, 9
CONTROL "", IDC_SCHEME_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 8, 130, 230, 60, WS_EX_CLIENTEDGE
LTEXT "S&esler:", IDC_TEXT_SOUND, 8, 194, 80, 9, WS_DISABLED
@@ -54,7 +54,7 @@ BEGIN
COMBOBOX IDC_DEVICE_PLAY_LIST, 50, 30, 180, 46, CBS_DROPDOWNLIST
PUSHBUTTON "&Ses Düzeyi...", IDC_VOLUME1_BTN, 85, 47, 70, 15
PUSHBUTTON "&Gelişmiş...", IDC_ADV2_BTN, 160, 47, 70, 15
GROUPBOX "Ses Kaydetme", -1, 7, 75, 230, 60
GROUPBOX "Ses Saklama", -1, 7, 75, 230, 60
ICON IDI_MICROPHONE_ICON, IDI_MICROPHONE_ICON, 15, 88, 32, 32
LTEXT "Ö&ntanımlı Aygıt:", -1, 50, 88, 80, 9
COMBOBOX IDC_DEVICE_REC_LIST, 50, 98, 180, 46, CBS_DROPDOWNLIST
@@ -74,14 +74,14 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "İnsan Sesi"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bu ayarlar, seçtiğiniz insan sesi çalma veyâ insan sesi kaydetme aygıtı için ses düzeyini ve gelişmiş seçenekleri denetler.", -1, 8, 7, 230, 40
LTEXT "Bu ayarlar, seçtiğiniz insan sesi çalma veyâ insan sesi saklama aygıtı için ses düzeyini ve gelişmiş seçenekleri denetler.", -1, 8, 7, 230, 40
GROUPBOX "İnsan Sesi Çalma", -1, 7, 37, 230, 60
ICON IDI_CPLICON, IDI_CPLICON, 15, 50, 32, 32
LTEXT "&Ön Tanımlı Aygıt:", -1, 50, 50, 80, 9
COMBOBOX IDC_DEVICE_VOICE_LIST, 50, 60, 180, 46, CBS_DROPDOWNLIST
PUSHBUTTON "&Ses Düzeyi...", IDC_VOLUME4_BTN, 85, 77, 70, 15
PUSHBUTTON "&Gelişmiş...", IDC_ADV4_BTN, 160, 77, 70, 15
GROUPBOX "İnsan Sesi Kaydetme", -1, 7, 105, 230, 60
GROUPBOX "İnsan Sesi Saklama", -1, 7, 105, 230, 60
ICON IDI_MICROPHONE_ICON, IDI_MICROPHONE_ICON, 15, 118, 32, 32
LTEXT "Ö&ntanımlı Aygıt:", -1, 50, 118, 80, 9
COMBOBOX IDC_DEVICE_VOICE_REC_LIST, 50, 128, 180, 46, CBS_DROPDOWNLIST
@@ -99,10 +99,10 @@ END
IDD_SAVE_SCHEME_AS DIALOG 9, 23, 225, 54
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
CAPTION "Düzeni Kaydet"
CAPTION "Düzeni Sakla"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Bu ses düzenini ayrı kaydet:", -1, 7, 7, 212, 9
LTEXT "&Bu ses düzenini ayrı sakla:", -1, 7, 7, 212, 9
EDITTEXT 8960, 7, 17, 211, 14, ES_AUTOHSCROLL
DEFPUSHBUTTON "Tamam", IDOK, 93, 36, 60, 14
PUSHBUTTON "İptal", IDCANCEL, 157, 36, 60, 14
@@ -225,7 +225,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "ReactOS Ses", 10259, 7, 5, 213, 192
ICON 4394, 10257, 25, 25, 20, 20
LTEXT "ReactOS Ses hizmeti şimdi etkin. Bununla birlikte ReactOS'u yeniden başlatana dek ses düzgün çalışamayabilir. Eğer şimdi bilgisayarı yeniden başlatmak isterseniz ilk önce çalışmalarınızı kaydediniz ve tüm izlenceleri kapatınız.", 10261, 60, 25, 150, 50
LTEXT "ReactOS Ses hizmeti şimdi etkin. Bununla birlikte ReactOS'u yeniden başlatana dek ses düzgün çalışamayabilir. Eğer şimdi bilgisayarı yeniden başlatmak isterseniz ilk önce çalışmalarınızı saklayınız ve tüm izlenceleri kapatınız.", 10261, 60, 25, 150, 50
LTEXT "ReactOS'u yeniden başlatmak için Tamam'a tıklayınız.", 10262, 60, 75, 150, 20
LTEXT "Eğer iptal ederseniz ReactOS Ses'in düzgün çalışması için bilgisayarı yeniden başlatmaya gereksinim duyacaksınız.", 10263, 60, 100, 150, 40
END
@@ -233,7 +233,7 @@ END
STRINGTABLE
BEGIN
IDS_CPLNAME "Ses ve Ses Aygıtları"
IDS_CPLDESCRIPTION "Bilgisayarınız için ses düzenini değiştirir, hoparlörleriniz ve kaydetme aygıtlarınız için ayarları yapılandırır."
IDS_CPLDESCRIPTION "Bilgisayarınız için ses düzenini değiştirir, hoparlörleriniz ve saklama aygıtlarınız için ayarları yapılandırır."
IDS_NO_SOUND "(Yok)"
IDS_NO_DEVICES "Aygıt Yok"
5825 "İzlence Yanlışlığı"
+2 -2
View File
@@ -11,7 +11,7 @@ BEGIN
LTEXT "Bu bilgisayar için en uygun ayarlarla bir güç düzeni seçiniz. Aşağıdaki ayarların değiştirilmesi seçili düzeni değiştireceğini göz önünde bulundurunuz.", -1, 37, 6, 209, 36
GROUPBOX "&Güç Düzenleri", -1, 6, 43, 240, 50
COMBOBOX IDC_ENERGYLIST, 14, 54, 224, 92, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL
PUSHBUTTON "&Ayrı Kaydet...", IDC_SAVEAS_BTN, 109, 72, 70, 14, WS_DISABLED
PUSHBUTTON "&Ayrı Sakla...", IDC_SAVEAS_BTN, 109, 72, 70, 14, WS_DISABLED
PUSHBUTTON "&Sil", IDC_DELETE_BTN, 183, 72, 55, 14, WS_DISABLED
GROUPBOX "Bilinmiyor", IDC_GRPDETAIL, 6, 95, 240, 136
LTEXT "Bilgisyar:", IDC_SAT, 12, 109, 60, 12
@@ -92,7 +92,7 @@ CAPTION "Anıkta Bekleme"
FONT 8, "MS Shell Dlg"
BEGIN
ICON IDI_HIBERNATE, IDI_HIBERNATE, 7, 7, 20, 20
LTEXT "Bilgisayar anıkta bekletildiğinde sâbit diskinize bellekte ne varsa kaydedilir ve sonra bilgisayar kapatılır. Bilgisayarınız anıkta beklemeden çıktığında bir önceki durumuna döner.", -1, 37, 6, 210, 35
LTEXT "Bilgisayar anıkta bekletildiğinde sâbit diskinize bellekte ne varsa saklanır ve sonra bilgisayar kapatılır. Bilgisayarınız anıkta beklemeden çıktığında bir önceki durumuna döner.", -1, 37, 6, 210, 35
GROUPBOX "Anıkta Bekleme", -1, 6, 41, 240, 32
CONTROL "&Anıkta Beklemeyi Etkinleştir", IDC_HIBERNATEFILE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 55, 210, 10
GROUPBOX "Anıkta Bekleme İçin Disk Alanı", -1, 6, 80, 240, 76
@@ -225,7 +225,7 @@ static ULONG WINAPI MediaStreamFilterImpl_AddRef(IMediaStreamFilter *iface)
static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
{
IMediaStreamFilterImpl *This = impl_from_IMediaStreamFilter(iface);
ULONG ref = BaseFilterImpl_Release(&This->filter.IBaseFilter_iface);
ULONG ref = InterlockedDecrement(&This->filter.refCount);
TRACE("(%p)->(): new ref = %u\n", iface, ref);
@@ -237,6 +237,7 @@ static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
IMediaStream_Release(This->streams[i]);
IPin_Release(This->pins[i]);
}
BaseFilter_Destroy(&This->filter);
HeapFree(GetProcessHeap(), 0, This);
}
+1
View File
@@ -22,6 +22,7 @@ list(APPEND SOURCE
ldr/ldrutils.c
rtl/libsupp.c
rtl/version.c
etw/trace.c
include/ntdll.h)
if(ARCH STREQUAL "i386")
+31 -31
View File
@@ -43,37 +43,37 @@
@ stdcall DbgUiStopDebugging(ptr)
@ stdcall DbgUiWaitStateChange(ptr ptr)
@ stdcall DbgUserBreakPoint()
# EtwControlTraceA
# EtwControlTraceW
# EtwCreateTraceInstanceId
# EtwEnableTrace
# EtwEnumerateTraceGuids
# EtwFlushTraceA
# EtwFlushTraceW
# EtwGetTraceEnableFlags
# EtwGetTraceEnableLevel
# EtwGetTraceLoggerHandle
# EtwNotificationRegistrationA
# EtwNotificationRegistrationW
# EtwQueryAllTracesA
# EtwQueryAllTracesW
# EtwQueryTraceA
# EtwQueryTraceW
# EtwReceiveNotificationsA
# EtwReceiveNotificationsW
# EtwRegisterTraceGuidsA
# EtwRegisterTraceGuidsW
# EtwStartTraceA
# EtwStartTraceW
# EtwStopTraceA
# EtwStopTraceW
# EtwTraceEvent
# EtwTraceEventInstance
# EtwTraceMessage
# EtwTraceMessageVa
# EtwUnregisterTraceGuids
# EtwUpdateTraceA
# EtwUpdateTraceW
@ stdcall EtwControlTraceA(double str ptr long)
@ stdcall EtwControlTraceW(double wstr ptr long)
@ stdcall -stub EtwCreateTraceInstanceId(ptr ptr)
@ stdcall EtwEnableTrace(long long long ptr double)
@ stdcall -stub EtwEnumerateTraceGuids(ptr long ptr)
@ stdcall -stub EtwFlushTraceA(double str ptr)
@ stdcall -stub EtwFlushTraceW(double wstr ptr)
@ stdcall EtwGetTraceEnableFlags(double)
@ stdcall EtwGetTraceEnableLevel(double)
@ stdcall EtwGetTraceLoggerHandle(ptr)
@ stdcall -stub EtwNotificationRegistrationA(ptr long ptr long long)
@ stdcall -stub EtwNotificationRegistrationW(ptr long ptr long long)
@ stdcall EtwQueryAllTracesA(ptr long ptr)
@ stdcall EtwQueryAllTracesW(ptr long ptr)
@ stdcall -stub EtwQueryTraceA(double str ptr)
@ stdcall -stub EtwQueryTraceW(double wstr ptr)
@ stdcall -stub EtwReceiveNotificationsA() # FIXME prototype
@ stdcall -stub EtwReceiveNotificationsW() # FIXME prototype
@ stdcall EtwRegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr)
@ stdcall EtwRegisterTraceGuidsW(ptr ptr ptr long ptr wstr wstr ptr)
@ stdcall EtwStartTraceA(ptr str ptr)
@ stdcall EtwStartTraceW(ptr wstr ptr)
@ stdcall -stub EtwStopTraceA(double str ptr)
@ stdcall -stub EtwStopTraceW(double wstr ptr)
@ stdcall EtwTraceEvent(double ptr)
@ stdcall -stub EtwTraceEventInstance(double ptr ptr ptr)
@ varargs EtwTraceMessage(ptr long ptr long)
@ stdcall -stub EtwTraceMessageVa(double long ptr long ptr)
@ stdcall EtwUnregisterTraceGuids(double)
@ stdcall -stub EtwUpdateTraceA(double str ptr)
@ stdcall -stub EtwUpdateTraceW(double wstr ptr)
# EtwpGetTraceBuffer
# EtwpSetHWConfigFunction
@ stdcall -arch=i386 KiFastSystemCall()
@@ -1,18 +1,22 @@
/*
* Advapi32.dll Event Tracing Functions
* ntdll.dll Event Tracing Functions
*/
#include <advapi32.h>
#include <ntdll.h>
#include <wmistr.h>
#include <evntrace.h>
WINE_DEFAULT_DEBUG_CHANNEL(advapi);
#define NDEBUG
#include <debug.h>
#define FIXME DPRINT1
/*
* @unimplemented
*/
ULONG CDECL
TraceMessage(
EtwTraceMessage(
TRACEHANDLE SessionHandle,
ULONG MessageFlags,
LPCGUID MessageGuid,
@@ -24,24 +28,24 @@ TraceMessage(
}
TRACEHANDLE
WMIAPI
GetTraceLoggerHandle(
NTAPI
EtwGetTraceLoggerHandle(
PVOID Buffer
)
{
FIXME("GetTraceLoggerHandle stub()\n");
FIXME("EtwGetTraceLoggerHandle stub()\n");
return (TRACEHANDLE)-1;
}
ULONG
WMIAPI
TraceEvent(
NTAPI
EtwTraceEvent(
TRACEHANDLE SessionHandle,
PEVENT_TRACE_HEADER EventTrace
)
{
FIXME("TraceEvent stub()\n");
FIXME("EtwTraceEvent stub()\n");
if (!SessionHandle || !EventTrace)
{
@@ -59,38 +63,38 @@ TraceEvent(
}
ULONG
WMIAPI
GetTraceEnableFlags(
NTAPI
EtwGetTraceEnableFlags(
TRACEHANDLE TraceHandle
)
{
FIXME("GetTraceEnableFlags stub()\n");
FIXME("EtwGetTraceEnableFlags stub()\n");
return 0xFF;
}
UCHAR
WMIAPI
GetTraceEnableLevel(
NTAPI
EtwGetTraceEnableLevel(
TRACEHANDLE TraceHandle
)
{
FIXME("GetTraceEnableLevel stub()\n");
FIXME("EtwGetTraceEnableLevel stub()\n");
return 0xFF;
}
ULONG
WMIAPI
UnregisterTraceGuids(
NTAPI
EtwUnregisterTraceGuids(
TRACEHANDLE RegistrationHandle
)
{
FIXME("UnregisterTraceGuids stub()\n");
FIXME("EtwUnregisterTraceGuids stub()\n");
return ERROR_SUCCESS;
}
ULONG
WMIAPI
RegisterTraceGuidsA(
NTAPI
EtwRegisterTraceGuidsA(
WMIDPREQUEST RequestAddress,
PVOID RequestContext,
LPCGUID ControlGuid,
@@ -101,13 +105,13 @@ RegisterTraceGuidsA(
PTRACEHANDLE RegistrationHandle
)
{
FIXME("RegisterTraceGuidsA stub()\n");
FIXME("EtwRegisterTraceGuidsA stub()\n");
return ERROR_SUCCESS;
}
ULONG
WMIAPI
RegisterTraceGuidsW(
NTAPI
EtwRegisterTraceGuidsW(
WMIDPREQUEST RequestAddress,
PVOID RequestContext,
LPCGUID ControlGuid,
@@ -118,66 +122,66 @@ RegisterTraceGuidsW(
PTRACEHANDLE RegistrationHandle
)
{
FIXME("RegisterTraceGuidsW stub()\n");
FIXME("EtwRegisterTraceGuidsW stub()\n");
return ERROR_SUCCESS;
}
ULONG WINAPI StartTraceW( PTRACEHANDLE pSessionHandle, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties )
ULONG WINAPI EtwStartTraceW( PTRACEHANDLE pSessionHandle, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties )
{
FIXME("(%p, %s, %p) stub\n", pSessionHandle, debugstr_w(SessionName), Properties);
FIXME("(%p, %s, %p) stub\n", pSessionHandle, SessionName, Properties);
if (pSessionHandle) *pSessionHandle = 0xcafe4242;
return ERROR_SUCCESS;
}
ULONG WINAPI StartTraceA( PTRACEHANDLE pSessionHandle, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties )
ULONG WINAPI EtwStartTraceA( PTRACEHANDLE pSessionHandle, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties )
{
FIXME("(%p, %s, %p) stub\n", pSessionHandle, debugstr_a(SessionName), Properties);
FIXME("(%p, %s, %p) stub\n", pSessionHandle, SessionName, Properties);
if (pSessionHandle) *pSessionHandle = 0xcafe4242;
return ERROR_SUCCESS;
}
/******************************************************************************
* ControlTraceW [ADVAPI32.@]
* EtwControlTraceW [NTDLL.@]
*
* Control a givel event trace session
*
*/
ULONG WINAPI ControlTraceW( TRACEHANDLE hSession, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control )
ULONG WINAPI EtwControlTraceW( TRACEHANDLE hSession, LPCWSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control )
{
FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(hSession), debugstr_w(SessionName), Properties, control);
FIXME("(%I64x, %s, %p, %d) stub\n", hSession, SessionName, Properties, control);
return ERROR_SUCCESS;
}
/******************************************************************************
* ControlTraceA [ADVAPI32.@]
* EtwControlTraceA [NTDLL.@]
*
* See ControlTraceW.
*
*/
ULONG WINAPI ControlTraceA( TRACEHANDLE hSession, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control )
ULONG WINAPI EtwControlTraceA( TRACEHANDLE hSession, LPCSTR SessionName, PEVENT_TRACE_PROPERTIES Properties, ULONG control )
{
FIXME("(%s, %s, %p, %d) stub\n", wine_dbgstr_longlong(hSession), debugstr_a(SessionName), Properties, control);
FIXME("(%I64x, %s, %p, %d) stub\n", hSession, SessionName, Properties, control);
return ERROR_SUCCESS;
}
/******************************************************************************
* EnableTrace [ADVAPI32.@]
* EtwEnableTrace [NTDLL.@]
*/
ULONG WINAPI EnableTrace( ULONG enable, ULONG flag, ULONG level, LPCGUID guid, TRACEHANDLE hSession )
ULONG WINAPI EtwEnableTrace( ULONG enable, ULONG flag, ULONG level, LPCGUID guid, TRACEHANDLE hSession )
{
FIXME("(%d, 0x%x, %d, %s, %s): stub\n", enable, flag, level,
debugstr_guid(guid), wine_dbgstr_longlong(hSession));
FIXME("(%d, 0x%x, %d, %p, %I64x): stub\n", enable, flag, level,
guid, hSession);
return ERROR_SUCCESS;
}
/******************************************************************************
* QueryAllTracesW [ADVAPI32.@]
* EtwQueryAllTracesW [NTDLL.@]
*
* Query information for started event trace sessions
*
*/
ULONG WINAPI QueryAllTracesW( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount )
ULONG WINAPI EtwQueryAllTracesW( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount )
{
FIXME("(%p, %d, %p) stub\n", parray, arraycount, psessioncount);
@@ -186,11 +190,11 @@ ULONG WINAPI QueryAllTracesW( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount
}
/******************************************************************************
* QueryAllTracesA [ADVAPI32.@]
* QueryAllTracesA [NTDLL.@]
*
* See QueryAllTracesW.
* See EtwQueryAllTracesA.
*/
ULONG WINAPI QueryAllTracesA( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount )
ULONG WINAPI EtwQueryAllTracesA( PEVENT_TRACE_PROPERTIES * parray, ULONG arraycount, PULONG psessioncount )
{
FIXME("(%p, %d, %p) stub\n", parray, arraycount, psessioncount);
+1 -1
View File
@@ -8,6 +8,7 @@ add_definitions(-D_WIN32_WINNT=0x600)
include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/idl
${REACTOS_SOURCE_DIR}/include/reactos/drivers/ksecdd
${REACTOS_SOURCE_DIR}/lib/cryptlib
${CMAKE_CURRENT_BINARY_DIR})
@@ -27,7 +28,6 @@ list(APPEND SOURCE
misc/msi.c
misc/shutdown.c
misc/sysfunc.c
misc/trace.c
reg/reg.c
sec/ac.c
sec/audit.c
+35 -35
View File
@@ -66,8 +66,8 @@
@ stdcall CommandLineFromMsiDescriptor(wstr ptr ptr)
@ stub ComputeAccessTokenFromCodeAuthzLevel
@ stdcall ControlService(long long ptr)
@ stdcall ControlTraceA(double str ptr long)
@ stdcall ControlTraceW(double wstr ptr long)
@ stdcall ControlTraceA(double str ptr long) ntdll.EtwControlTraceA
@ stdcall ControlTraceW(double wstr ptr long) ntdll.EtwControlTraceW
@ stub ConvertAccessToSecurityDescriptorA
@ stub ConvertAccessToSecurityDescriptorW
@ stub ConvertSDToStringSDRootDomainA
@@ -101,7 +101,7 @@
@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr)
@ stdcall CreateServiceA(long str str long long long long str str ptr str str str)
@ stdcall CreateServiceW(long wstr wstr long long long long wstr wstr ptr wstr wstr wstr)
@ stub CreateTraceInstanceId
@ stdcall CreateTraceInstanceId(ptr ptr) ntdll.EtwCreateTraceInstanceId
@ stdcall CreateWellKnownSid(long ptr ptr ptr)
@ stdcall CredDeleteA(str long long)
@ stdcall CredDeleteW(wstr long long)
@@ -199,9 +199,9 @@
@ stub ElfRegisterEventSourceA
@ stub ElfRegisterEventSourceW
@ stub ElfReportEventA
# ElfReportEventAndSourceW
@ stub ElfReportEventAndSourceW
@ stub ElfReportEventW
@ stdcall EnableTrace(long long long ptr double)
@ stdcall EnableTrace(long long long ptr double) ntdll.EtwEnableTrace
@ stdcall EncryptFileA(str)
@ stdcall EncryptFileW(wstr)
@ stub EncryptedFileKeyInfo
@@ -213,15 +213,15 @@
@ stdcall EnumServicesStatusExA(long long long long ptr long ptr ptr ptr str)
@ stdcall EnumServicesStatusExW(long long long long ptr long ptr ptr ptr wstr)
@ stdcall EnumServicesStatusW(long long long ptr long ptr ptr ptr)
@ stub EnumerateTraceGuids
@ stdcall EnumerateTraceGuids(ptr long ptr) ntdll.EtwEnumerateTraceGuids
@ stdcall EqualDomainSid(ptr ptr ptr)
@ stdcall EqualPrefixSid(ptr ptr)
@ stdcall EqualSid(ptr ptr)
@ stdcall FileEncryptionStatusA(str ptr)
@ stdcall FileEncryptionStatusW(wstr ptr)
@ stdcall FindFirstFreeAce(ptr ptr)
@ stub FlushTraceA
@ stub FlushTraceW
@ stdcall FlushTraceA(double str ptr) ntdll.EtwFlushTraceA
@ stdcall FlushTraceW(double wstr ptr) ntdll.EtwFlushTraceW
@ stub FreeEncryptedFileKeyInfo
@ stdcall FreeEncryptionCertificateHashList(ptr)
@ stdcall FreeInheritedFromArray(ptr long ptr)
@@ -282,9 +282,9 @@
@ stdcall GetSidSubAuthority(ptr long)
@ stdcall GetSidSubAuthorityCount(ptr)
@ stdcall GetTokenInformation(long long ptr long ptr)
@ stdcall GetTraceEnableFlags(double)
@ stdcall GetTraceEnableLevel(double)
@ stdcall GetTraceLoggerHandle(ptr)
@ stdcall GetTraceEnableFlags(double) ntdll.EtwGetTraceEnableFlags
@ stdcall GetTraceEnableLevel(double) ntdll.EtwGetTraceEnableLevel
@ stdcall GetTraceLoggerHandle(ptr) ntdll.EtwGetTraceLoggerHandle
@ stdcall GetTrusteeFormA(ptr)
@ stdcall GetTrusteeFormW(ptr)
@ stdcall GetTrusteeNameA(ptr)
@@ -294,7 +294,7 @@
@ stdcall GetUserNameA(ptr ptr)
@ stdcall GetUserNameW(ptr ptr)
@ stdcall GetWindowsAccountDomainSid(ptr ptr ptr)
# I_QueryTagInformation
@ stub I_QueryTagInformation
@ stub I_ScIsSecurityProcess
@ stub I_ScPnPGetServiceName
@ stub I_ScSendTSMessage
@@ -439,8 +439,8 @@
@ stdcall PrivilegedServiceAuditAlarmW(wstr wstr long ptr long)
@ stub ProcessIdleTasks
@ stub ProcessTrace
@ stdcall QueryAllTracesA(ptr long ptr)
@ stdcall QueryAllTracesW(ptr long ptr)
@ stdcall QueryAllTracesA(ptr long ptr) ntdll.EtwQueryAllTracesA
@ stdcall QueryAllTracesW(ptr long ptr) ntdll.EtwQueryAllTracesW
@ stdcall QueryRecoveryAgentsOnEncryptedFile(wstr ptr)
@ stdcall QueryServiceConfig2A(long long ptr long ptr)
@ stdcall QueryServiceConfig2W(long long ptr long ptr)
@@ -451,16 +451,16 @@
@ stdcall QueryServiceObjectSecurity(long long ptr long ptr)
@ stdcall QueryServiceStatus(long ptr)
@ stdcall QueryServiceStatusEx(long long ptr long ptr)
@ stub QueryTraceA
@ stub QueryTraceW
@ stdcall QueryTraceA(double str ptr) ntdll.EtwQueryTraceA
@ stdcall QueryTraceW(double str ptr) ntdll.EtwQueryTraceA
@ stdcall QueryUsersOnEncryptedFile(wstr ptr)
@ stub ReadEncryptedFileRaw
@ stdcall ReadEventLogA(long long long ptr long ptr ptr)
@ stdcall ReadEventLogW(long long long ptr long ptr ptr)
@ stdcall RegCloseKey(long)
@ stdcall RegConnectRegistryA(str long ptr)
# RegConnectRegistryExA
# RegConnectRegistryExW
@ stub RegConnectRegistryExA
@ stub RegConnectRegistryExW
@ stdcall RegConnectRegistryW(wstr long ptr)
@ stdcall RegCreateKeyA(long str ptr)
@ stdcall RegCreateKeyExA(long str long ptr long long ptr ptr ptr)
@@ -526,8 +526,8 @@
@ stdcall RegisterServiceCtrlHandlerExA(str ptr ptr)
@ stdcall RegisterServiceCtrlHandlerExW(wstr ptr ptr)
@ stdcall RegisterServiceCtrlHandlerW(wstr ptr)
@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr)
@ stdcall RegisterTraceGuidsW(ptr ptr ptr long ptr wstr wstr ptr)
@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr str str ptr) ntdll.EtwRegisterTraceGuidsA
@ stdcall RegisterTraceGuidsW(ptr ptr ptr long ptr wstr wstr ptr) ntdll.EtwRegisterTraceGuidsW
@ stub RemoveTraceCallback
@ stdcall RemoveUsersFromEncryptedFile(wstr ptr)
@ stdcall ReportEventA(long long long long ptr long long str ptr)
@@ -587,10 +587,10 @@
@ stdcall StartServiceCtrlDispatcherA(ptr)
@ stdcall StartServiceCtrlDispatcherW(ptr)
@ stdcall StartServiceW(long long ptr)
@ stdcall StartTraceA(ptr str ptr)
@ stdcall StartTraceW(ptr wstr ptr)
@ stub StopTraceA
@ stub StopTraceW
@ stdcall StartTraceA(ptr str ptr) ntdll.EtwStartTraceA
@ stdcall StartTraceW(ptr wstr ptr) ntdll.EtwStartTraceW
@ stdcall StopTraceA(double str ptr) ntdll.EtwStopTraceA
@ stdcall StopTraceW(double wstr ptr) ntdll.EtwStopTraceA
@ stdcall SystemFunction001(ptr ptr ptr)
@ stdcall SystemFunction002(ptr ptr ptr)
@ stdcall SystemFunction003(ptr ptr)
@@ -629,10 +629,10 @@
@ stdcall SystemFunction036(ptr long) # RtlGenRandom
@ stdcall SystemFunction040(ptr long long) # RtlEncryptMemory
@ stdcall SystemFunction041(ptr long long) # RtlDecryptMemory
@ stdcall TraceEvent(double ptr)
@ stub TraceEventInstance
@ varargs TraceMessage(ptr long ptr long)
@ stub TraceMessageVa
@ stdcall TraceEvent(double ptr) ntdll.EtwTraceEvent
@ stdcall TraceEventInstance(double ptr ptr ptr) ntdll.EtwTraceEventInstance
@ varargs TraceMessage(ptr long ptr long) ntdll.EtwTraceMessage
@ stdcall TraceMessageVa(double long ptr long ptr) ntdll.EtwTraceMessageVa
@ stdcall TreeResetNamedSecurityInfoA(str ptr ptr ptr ptr ptr ptr long ptr ptr ptr)
@ stdcall TreeResetNamedSecurityInfoW(wstr long long ptr ptr ptr ptr long ptr long ptr)
@ stub TrusteeAccessToObjectA
@@ -640,9 +640,9 @@
@ stub UninstallApplication
@ stdcall UnlockServiceDatabase(ptr)
@ stub UnregisterIdleTask
@ stdcall UnregisterTraceGuids(double)
@ stub UpdateTraceA
@ stub UpdateTraceW
@ stdcall UnregisterTraceGuids(double) ntdll.EtwUnregisterTraceGuids
@ stdcall UpdateTraceA(double str ptr) ntdll.EtwUpdateTraceA
@ stdcall UpdateTraceW(double wstr ptr) ntdll.EtwUpdateTraceW
@ stub WdmWmiServiceMain
@ stub WmiCloseBlock
@ stub WmiCloseTraceWithCursor
@@ -660,8 +660,8 @@
@ stub WmiGetTraceHeader
@ stub WmiMofEnumerateResourcesA
@ stub WmiMofEnumerateResourcesW
@ stub WmiNotificationRegistrationA
@ stub WmiNotificationRegistrationW
@ stdcall WmiNotificationRegistrationA(ptr long ptr long long) ntdll.EtwNotificationRegistrationA
@ stdcall WmiNotificationRegistrationW(ptr long ptr long long) ntdll.EtwNotificationRegistrationW
@ stub WmiOpenBlock
@ stub WmiOpenTraceWithCursor
@ stub WmiParseTraceEvent
@@ -674,8 +674,8 @@
@ stub WmiQuerySingleInstanceMultipleA
@ stub WmiQuerySingleInstanceMultipleW
@ stub WmiQuerySingleInstanceW
@ stub WmiReceiveNotificationsA
@ stub WmiReceiveNotificationsW
@ stdcall WmiReceiveNotificationsA() ntdll.EtwReceiveNotificationsA # FIXME prototype
@ stdcall WmiReceiveNotificationsW() ntdll.EtwReceiveNotificationsW # FIXME prototype
@ stub WmiSetSingleInstanceA
@ stub WmiSetSingleInstanceW
@ stub WmiSetSingleItemA
+2
View File
@@ -14,6 +14,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(advapi);
extern BOOL RegInitialize(VOID);
extern BOOL RegCleanup(VOID);
extern VOID UnloadNtMarta(VOID);
extern VOID CloseKsecDdHandle(VOID);
BOOL
WINAPI
@@ -33,6 +34,7 @@ DllMain(
CloseLogonLsaHandle();
RegCleanup();
UnloadNtMarta();
CloseKsecDdHandle();
break;
}
+141 -6
View File
@@ -12,6 +12,8 @@
*/
#include <advapi32.h>
#include <ntsecapi.h>
#include <ksecioctl.h>
#include <md4.h>
#include <md5.h>
#include <rc4.h>
@@ -615,6 +617,93 @@ SystemFunction036(PVOID pbBuffer, ULONG dwLen)
return TRUE;
}
HANDLE KsecDeviceHandle;
static
NTSTATUS
KsecOpenDevice()
{
UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\KsecDD");
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatusBlock;
HANDLE DeviceHandle;
NTSTATUS Status;
InitializeObjectAttributes(&ObjectAttributes,
&DeviceName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
Status = NtOpenFile(&DeviceHandle,
FILE_READ_DATA | SYNCHRONIZE,
&ObjectAttributes,
&IoStatusBlock,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
FILE_SYNCHRONOUS_IO_NONALERT);
if (!NT_SUCCESS(Status))
{
return Status;
}
if (InterlockedCompareExchangePointer(&KsecDeviceHandle, DeviceHandle, NULL) != NULL)
{
NtClose(DeviceHandle);
}
return STATUS_SUCCESS;
}
VOID
CloseKsecDdHandle(VOID)
{
/* Check if we already opened a handle to ksecdd */
if (KsecDeviceHandle != NULL)
{
/* Close it */
CloseHandle(KsecDeviceHandle);
KsecDeviceHandle = NULL;
}
}
static
NTSTATUS
KsecDeviceIoControl(
ULONG IoControlCode,
PVOID InputBuffer,
SIZE_T InputBufferLength,
PVOID OutputBuffer,
SIZE_T OutputBufferLength)
{
IO_STATUS_BLOCK IoStatusBlock;
NTSTATUS Status;
/* Check if we already have a handle */
if (KsecDeviceHandle == NULL)
{
/* Try to open the device */
Status = KsecOpenDevice();
if (!NT_SUCCESS(Status))
{
//ERR("Failed to open handle to KsecDd driver!\n");
return Status;
}
}
/* Call the driver */
Status = NtDeviceIoControlFile(KsecDeviceHandle,
NULL,
NULL,
NULL,
&IoStatusBlock,
IoControlCode,
InputBuffer,
InputBufferLength,
OutputBuffer,
OutputBufferLength);
return Status;
}
/*
These functions have nearly identical prototypes to CryptProtectMemory and CryptUnprotectMemory,
in crypt32.dll.
@@ -642,10 +731,33 @@ SystemFunction036(PVOID pbBuffer, ULONG dwLen)
* If flags are specified when encrypting, the same flag value must be given
* when decrypting the memory.
*/
NTSTATUS WINAPI SystemFunction040(PVOID memory, ULONG length, ULONG flags)
NTSTATUS
WINAPI
SystemFunction040(
_Inout_ PVOID Memory,
_In_ ULONG MemoryLength,
_In_ ULONG OptionFlags)
{
//FIXME("(%p, %x, %x): stub [RtlEncryptMemory]\n", memory, length, flags);
return STATUS_SUCCESS;
ULONG IoControlCode;
if (OptionFlags == RTL_ENCRYPT_OPTION_SAME_PROCESS)
{
IoControlCode = IOCTL_KSEC_ENCRYPT_SAME_PROCESS;
}
else if (OptionFlags == RTL_ENCRYPT_OPTION_CROSS_PROCESS)
{
IoControlCode = IOCTL_KSEC_ENCRYPT_CROSS_PROCESS;
}
else if (OptionFlags == RTL_ENCRYPT_OPTION_SAME_LOGON)
{
IoControlCode = IOCTL_KSEC_ENCRYPT_SAME_LOGON;
}
else
{
return STATUS_INVALID_PARAMETER;
}
return KsecDeviceIoControl(IoControlCode, Memory, MemoryLength, Memory, MemoryLength);
}
/******************************************************************************
@@ -670,10 +782,33 @@ NTSTATUS WINAPI SystemFunction040(PVOID memory, ULONG length, ULONG flags)
* If flags are specified when encrypting, the same flag value must be given
* when decrypting the memory.
*/
NTSTATUS WINAPI SystemFunction041(PVOID memory, ULONG length, ULONG flags)
NTSTATUS
WINAPI
SystemFunction041(
_Inout_ PVOID Memory,
_In_ ULONG MemoryLength,
_In_ ULONG OptionFlags)
{
//FIXME("(%p, %x, %x): stub [RtlDecryptMemory]\n", memory, length, flags);
return STATUS_SUCCESS;
ULONG IoControlCode;
if (OptionFlags == RTL_ENCRYPT_OPTION_SAME_PROCESS)
{
IoControlCode = IOCTL_KSEC_DECRYPT_SAME_PROCESS;
}
else if (OptionFlags == RTL_ENCRYPT_OPTION_CROSS_PROCESS)
{
IoControlCode = IOCTL_KSEC_DECRYPT_CROSS_PROCESS;
}
else if (OptionFlags == RTL_ENCRYPT_OPTION_SAME_LOGON)
{
IoControlCode = IOCTL_KSEC_DECRYPT_SAME_LOGON;
}
else
{
return STATUS_INVALID_PARAMETER;
}
return KsecDeviceIoControl(IoControlCode, Memory, MemoryLength, Memory, MemoryLength);
}
/* EOF */
+6 -6
View File
@@ -130,10 +130,10 @@ STRINGTABLE /* Color names */
STRINGTABLE
{
IDS_FONT_SIZE "%1!d! ile %2!d! punto arasında bir yazı tipi büyüklüğü seçiniz."
IDS_SAVE_BUTTON "&Kaydet"
IDS_SAVE_IN "K&aydetme Yeri:"
IDS_SAVE "Kaydet"
IDS_SAVE_AS "Ayrı Kaydet"
IDS_SAVE_BUTTON "&Sakla"
IDS_SAVE_IN "S&aklama Yeri:"
IDS_SAVE "Sakla"
IDS_SAVE_AS "Ayrı Sakla"
IDS_OPEN_FILE "Kütük Aç"
}
@@ -165,7 +165,7 @@ FONT 8, "MS Shell Dlg"
SAVE_FILE DIALOG 36, 24, 275, 134
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ayrı Kaydet"
CAPTION "Ayrı Sakla"
FONT 8, "MS Shell Dlg"
{
LTEXT "&Kütük Adı:", stc3, 6, 6, 76, 9
@@ -178,7 +178,7 @@ FONT 8, "MS Shell Dlg"
COMBOBOX cmb1, 6, 114, 90, 36, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
LTEXT "&Sürücüler:", stc4, 110, 104, 92, 9
COMBOBOX cmb2, 110, 114, 92, 68, CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "Ayrı Kaydet", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
DEFPUSHBUTTON "Ayrı Sakla", IDOK, 208, 6, 60, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
PUSHBUTTON "İptal", IDCANCEL, 208, 24, 60, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Yardım", pshHelp, 208, 46, 60, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "Y&alnızca Okunur", chx1, 208, 68, 65, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
+2 -2
View File
@@ -157,9 +157,9 @@ Yazılımı yayımlamadan sonraki değişikliklerden korur."
IDS_PURPOSE_DS_EMAIL_REPLICATION "Dizin Hizmeti Posta Çoğlatması"
IDS_EXPORT_WIZARD "Onay Belgesi Verme Yardımcısı"
IDS_EXPORT_FORMAT_TITLE "Verme Biçimi"
IDS_EXPORT_FORMAT_SUBTITLE "İçeriğin kaydedileceği biçimi seçiniz."
IDS_EXPORT_FORMAT_SUBTITLE "İçeriğin saklanacağı biçimi seçiniz."
IDS_EXPORT_FILE_TITLE "Verme Kütük Adı"
IDS_EXPORT_FILE_SUBTITLE "İçeriğin kaydedildeceği kütüğün adını belirtiniz."
IDS_EXPORT_FILE_SUBTITLE "İçeriğin saklanacağı kütüğün adını belirtiniz."
IDS_EXPORT_FILE_EXISTS "Belirtilen kütük önceden var. Onu değiştirmek ister misiniz?"
IDS_EXPORT_FILTER_CERT "DER Şifrelenmiş İkili X.509 (*.cer)"
IDS_EXPORT_FILTER_BASE64_CERT "Base64 Şifrelenmiş X.509 (*.cer)"
+10
View File
@@ -2381,7 +2381,17 @@ static BOOL dwarf2_parse_compilation_unit(const dwarf2_section_t* sections,
}
if (dwarf2_find_attribute(&ctx, di, DW_AT_stmt_list, &stmt_list))
{
#ifdef __REACTOS__
unsigned long stmt_list_val = stmt_list.u.uvalue;
if (stmt_list_val > module->module.BaseOfImage)
{
/* FIXME: Clang is recording this as an address, not an offset */
stmt_list_val -= module->module.BaseOfImage + sections[section_line].rva;
}
if (dwarf2_parse_line_numbers(sections, &ctx, comp_dir.u.string, stmt_list_val))
#else
if (dwarf2_parse_line_numbers(sections, &ctx, comp_dir.u.string, stmt_list.u.uvalue))
#endif
module->module.LineNumbers = TRUE;
}
ret = TRUE;
+1 -1
View File
@@ -84,7 +84,7 @@ BEGIN
IDS_DEV_FAILED_DRIVER_ENTRY "ReactOS, bu donanım için aygıt sürücüsünü başlatamıyor."
IDS_DEV_DRIVER_FAILED_PRIOR_UNLOAD "ReactOS, bellekte şimdi bile aygıt sürücüsünün bir önceki kopyası olduğundan dolayı bu donanım için aygıt sürücüsünü yükleyemiyor."
IDS_DEV_DRIVER_FAILED_LOAD "ReactOS, bu donanım için aygıt sürücüsünü yükleyemiyor. Sürücü bozulmuş ya da eksik olabilir."
IDS_DEV_DRIVER_SERVICE_KEY_INVALID "ReactOS, bu donanımın, değer defterindeki hizmet dizini bilgisinin eksik ya da yanlış kaydedildiğinden dolayı bu donanıma erişemiyor."
IDS_DEV_DRIVER_SERVICE_KEY_INVALID "ReactOS, bu donanımın, değer defterindeki hizmet dizini bilgisinin eksik ya da yanlış saklandığından dolayı bu donanıma erişemiyor."
IDS_DEV_LEGACY_SERVICE_NO_DEVICES "ReactOS, bu donanım için aygıt sürücüsünü başarıyla yükledi ancak donanım aygıtını bulamıyor."
IDS_DEV_DUPLICATE_DEVICE "ReactOS, dizgede bir kopya aygıtın önceden çalışıyor olmasından dolayı bu donanım için aygıt sürücüsünü yükleyemiyor."
IDS_DEV_FAILED_POST_START "ReactOS, bu aygıtı, sorunlar bildirdiğinden dolayı durdurdu."
+31 -15
View File
@@ -25,7 +25,9 @@
@ stdcall BaseInitAppcompatCacheSupport()
@ stdcall BaseIsAppcompatInfrastructureDisabled() IsShimInfrastructureDisabled
@ stdcall BaseProcessInitPostImport() ; missing in Win 7
;@ stdcall -arch=x86_64 BaseProcessStart()
@ stdcall BaseQueryModuleData(str str ptr ptr ptr) ;check
;@ stdcall -arch=x86_64 BaseThreadStart()
@ stdcall BaseUpdateAppcompatCache(long long long)
@ stdcall BasepCheckBadapp(long ptr long long long long long long long)
@ stdcall BasepCheckWinSaferRestrictions(long long long long long long)
@@ -60,6 +62,7 @@
@ stdcall CompareStringA(long long str long str long)
@ stdcall CompareStringW(long long wstr long wstr long)
@ stdcall ConnectNamedPipe(long ptr)
;@ stdcall -arch=x86_64 ConsoleIMERoutine()
@ stdcall ConsoleMenuControl(long long long)
@ stdcall ContinueDebugEvent(long long long)
@ stdcall ConvertDefaultLocale (long)
@@ -108,7 +111,7 @@
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr)
@ stdcall CreateSemaphoreA(ptr long long str)
@ stdcall CreateSemaphoreW(ptr long long wstr)
@ stdcall CreateSocketHandle()
@ stdcall -i386 CreateSocketHandle()
@ stdcall CreateTapePartition(long long long long)
@ stdcall CreateThread(ptr long ptr long long ptr)
@ stdcall CreateTimerQueue ()
@@ -116,6 +119,7 @@
@ stdcall CreateToolhelp32Snapshot(long long)
@ stdcall CreateWaitableTimerA(ptr long str)
@ stdcall CreateWaitableTimerW(ptr long wstr)
;@ stdcall -arch=x86_64 CtrlRoutine()
@ stdcall DeactivateActCtx(long ptr)
@ stdcall DebugActiveProcess(long)
@ stdcall DebugActiveProcessStop(long)
@@ -364,7 +368,7 @@
@ stdcall GetFullPathNameW(wstr long ptr ptr)
@ stdcall GetGeoInfoA(long long ptr long long)
@ stdcall GetGeoInfoW(long long ptr long long)
@ stdcall GetHandleContext(long) ; missing on x64
@ stdcall -i386 GetHandleContext(long) ; missing on x64
@ stdcall GetHandleInformation(long ptr)
@ stdcall GetLargePageMinimum()
@ stdcall GetLargestConsoleWindowSize(long)
@@ -722,11 +726,22 @@
@ stdcall ResetWriteWatch(ptr long)
@ stdcall RestoreLastError(long) ntdll.RtlRestoreLastWin32Error
@ stdcall ResumeThread(long)
@ stdcall -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable
@ stdcall -register RtlCaptureContext(ptr) ntdll.RtlCaptureContext
@ stdcall RtlCaptureStackBackTrace(long long ptr ptr) ntdll.RtlCaptureStackBackTrace
@ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr ptr) ntdll.RtlCompareMemory
@ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr ptr) ntdll.memcpy
@ stdcall -arch=x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable
@ stdcall RtlFillMemory(ptr long long) ntdll.RtlFillMemory
@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr) ntdll.RtlInstallFunctionTableCallback
@ stdcall -arch=x86_64 RtlLookupFunctionEntry(ptr ptr ptr) ntdll.RtlLookupFunctionEntry
@ stdcall RtlMoveMemory(ptr ptr long) ntdll.RtlMoveMemory
@ stdcall -arch=x86_64 RtlPcToFileHeader(ptr ptr) ntdll.RtlPcToFileHeader
@ stdcall -arch=x86_64 RtlRaiseException(ptr) ntdll.RtlRaiseException
@ stdcall -arch=x86_64 RtlRestoreContext(ptr ptr) ntdll.RtlRestoreContext
@ stdcall RtlUnwind(ptr ptr ptr long) ntdll.RtlUnwind
@ stdcall -arch=x86_64 RtlUnwindEx(ptr ptr ptr ptr ptr ptr) ntdll.RtlUnwindEx
@ stdcall -arch=x86_64 RtlVirtualUnwind(ptr ptr ptr long) ntdll.RtlVirtualUnwind
@ stdcall RtlZeroMemory(ptr long) ntdll.RtlZeroMemory
@ stdcall ScrollConsoleScreenBufferA(long ptr ptr ptr ptr)
@ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr)
@@ -794,6 +809,7 @@
@ stdcall SetFileApisToOEM()
@ stdcall SetFileAttributesA(str long)
@ stdcall SetFileAttributesW(wstr long)
;@ stdcall -stub SetFileCompletionNotificationModes(ptr long); 2K3 SP2 has it!
@ stdcall SetFilePointer(long long ptr long)
@ stdcall SetFilePointerEx(long double ptr long)
@ stdcall SetFileShortNameA(long str)
@@ -802,7 +818,7 @@
@ stdcall SetFileValidData(long double)
@ stdcall SetFirmwareEnvironmentVariableA(str str ptr long)
@ stdcall SetFirmwareEnvironmentVariableW(wstr wstr ptr long)
@ stdcall SetHandleContext(long long) ; missing in Win 7 x64
@ stdcall -i386 SetHandleContext(long long) ; missing in Win 7 x64
@ stdcall SetHandleCount(long)
@ stdcall SetHandleInformation(long long long)
@ stdcall SetInformationJobObject(long long ptr long)
@@ -947,11 +963,15 @@
@ stdcall WriteProfileStringW(wstr wstr wstr)
@ stdcall WriteTapemark(ptr long long long)
@ stdcall ZombifyActCtx(ptr)
@ stdcall -arch=x86_64 __C_specific_handler() ntdll.__C_specific_handler
@ stdcall -arch=x86_64 __chkstk() ntdll.__chkstk
;@ stdcall -arch=x86_64 __misaligned_access() ntdll.__misaligned_access
@ stdcall _hread(long ptr long)
@ stdcall _hwrite(long ptr long)
@ stdcall _lclose(long)
@ stdcall _lcreat(str long)
@ stdcall _llseek(long long long)
@ stdcall -arch=x86_64 _local_unwind() ntdll._local_unwind
@ stdcall _lopen(str long)
@ stdcall _lread(long ptr long) _hread
@ stdcall _lwrite(long ptr long) _hwrite
@@ -973,17 +993,13 @@
@ stdcall lstrlen(str) lstrlenA
@ stdcall lstrlenA(str)
@ stdcall lstrlenW(wstr)
@ stdcall -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable
@ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr ptr) ntdll.RtlCompareMemory
@ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr ptr) ntdll.memcpy
@ stdcall -arch=x86_64 RtlDeleteFunctionTable(ptr) ntdll.RtlDeleteFunctionTable
@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr) ntdll.RtlInstallFunctionTableCallback
@ stdcall -arch=x86_64 RtlLookupFunctionEntry(ptr ptr ptr) ntdll.RtlLookupFunctionEntry
@ stdcall -arch=x86_64 RtlPcToFileHeader(ptr ptr) ntdll.RtlPcToFileHeader
@ stdcall -arch=x86_64 RtlRaiseException(ptr) ntdll.RtlRaiseException
@ stdcall -arch=x86_64 RtlRestoreContext(ptr ptr) ntdll.RtlRestoreContext
@ stdcall -arch=x86_64 RtlUnwindEx(ptr ptr ptr ptr ptr ptr) ntdll.RtlUnwindEx
@ stdcall -arch=x86_64 RtlVirtualUnwind(ptr ptr ptr long) ntdll.RtlVirtualUnwind
;@ stdcall -arch=x86_64 uaw_lstrcmpW(wstr wstr)
;@ stdcall -arch=x86_64 uaw_lstrcmpiW(wstr wstr)
;@ stdcall -arch=x86_64 uaw_lstrlenW(wstr)
;@ stdcall -arch=x86_64 uaw_wcschr(wstr long)
;@ stdcall -arch=x86_64 uaw_wcscpy(ptr wstr)
;@ stdcall -arch=x86_64 uaw_wcsicmp(wstr wstr)
;@ stdcall -arch=x86_64 uaw_wcslen(wstr)
;@ stdcall -arch=x86_64 uaw_wcsrchr(wstr long)
@ stdcall GetTickCount64() ; FOR WINE
+4 -4
View File
@@ -105,10 +105,10 @@ BEGIN
CONTROL "", 1042, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000084D, 19, 18, 200, 58
CONTROL "", 1041, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000084D, 19, 84, 200, 58
PUSHBUTTON "&Çevirge Sorgula", 1096, 138, 149, 75, 14
AUTOCHECKBOX "&Bir Kayda Kaydet", 1020, 18, 187, 98, 10
AUTOCHECKBOX "&Bir Kayda Sakla", 1020, 18, 187, 98, 10
PUSHBUTTON "&Kaydı Göster", 1094, 138, 184, 75, 14, WS_DISABLED
GROUPBOX "Çevirge Bilgisi", 1047, 10, 6, 217, 164
GROUPBOX "Kaydetme", -1, 10, 173, 217, 32
GROUPBOX "Saklama", -1, 10, 173, 217, 32
END
IDD_PLEASE_WAIT DIALOGEX 0, 0, 195, 72
@@ -275,7 +275,7 @@ BEGIN
302 "Belgegeçer"
303 "Ses"
304 "Yok"
320 "Ülke/bölge ayârı şimdikileştirilmiş."
320 "Ülke ya da bölge ayârı şimdikileştirilmiş."
340 "Çevirge"
341 "Çevirge Ayarları"
342 "Çevirge Adresi"
@@ -331,7 +331,7 @@ BEGIN
556 "Alman Ulusluk (1TR6) (Seyrek kullanılır.)"
557 "Fransız Ulusluk (VN3) (Seyrek kullanılır.)"
558 "Belçika Ulusluk (Seyrek kullanılır.)"
559 "Avusturalya Ulusluk (Seyrek kullanılır.)"
559 "Avustralya Ulusluk (Seyrek kullanılır.)"
560 "Bilinmeyen anahtar"
570 "Bu çevirge için ISDN yapılandırması bitirilmemiş.\n\nLütfen bu çevirgeyi kullanmadan önce\nISDN sekmesinde bilgiyi doldurunuz."
600 "PPP (56 Kbit/sn, GSM)"
+2 -2
View File
@@ -27,7 +27,7 @@ STRINGTABLE
IDD_PROXYDLG DIALOG 36, 24, 250, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ağ Şifresini Giriniz"
CAPTION "Ağ Şifresini Gir"
FONT 8, "MS Shell Dlg"
{
LTEXT "Lütfen kullanıcı adınızı ve şifrenizi giriniz:", IDC_EXPLAIN, 40, 6, 150, 15
@@ -39,7 +39,7 @@ FONT 8, "MS Shell Dlg"
LTEXT "", IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "&Bu Şifreyi Kaydet (Güvensiz)", IDC_SAVEPASSWORD,
CHECKBOX "&Bu Şifreyi Sakla (Güvensiz)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Tamam", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "İptal", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
+1 -1
View File
@@ -31,7 +31,7 @@ BEGIN
COMBOBOX IDD_ACMFORMATCHOOSE_CMB_CUSTOM, 5, 15, 115, 60,
CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Ay&rı Kaydet...", IDD_ACMFORMATCHOOSE_BTN_SETNAME, 125, 14, 45, 14
PUSHBUTTON "Ay&rı Sakla...", IDD_ACMFORMATCHOOSE_BTN_SETNAME, 125, 14, 45, 14
PUSHBUTTON "&Kaldır", IDD_ACMFORMATCHOOSE_BTN_DELNAME, 175, 14, 45, 14
LTEXT "&Biçim:", -1, 5, 41, 44, 8, NOT WS_GROUP
+3 -3
View File
@@ -146,7 +146,7 @@ BEGIN
IDS_PRESSCTRLALTDELETE "Oturum açmak için Denetim, Seçenek ve Silme düğmelerine birlikte basınız."
IDS_ASKFORUSER "Kullanıcı Adı: "
IDS_ASKFORPASSWORD "Şifre: "
IDS_FORCELOGOFF "Bu, şimdiki kullanıcının oturumunu kapatacak ve tüm kaydedilmemiş bilgiler yitirilecek. Sürdürülsün mü?"
IDS_FORCELOGOFF "Bu, şimdiki kullanıcının oturumunu kapatacak ve tüm saklanmış bilgiler yitirilecek. Sürdürülsün mü?"
IDS_LOCKMSG "Yalnızca %s ve bir yönetici bu bilgisayarın kilidini açabilir."
IDS_LOGONMSG "%s olarak oturum açtınız."
IDS_LOGONDATE "Oturum Açma Zamânı: %s %s"
@@ -154,7 +154,7 @@ BEGIN
IDS_LOCKEDWRONGPASSWORD "Şifre yanlış. Lütfen şifrenizi yeniden giriniz. Şifrelerdeki harfler doğru büyük-küçük ayrımı kullanılarak yazılmalıdır."
IDS_LOCKEDWRONGUSER "Bu bilgisayar kilitli. Yalnızca %s\\%s ve bir yönetici bu bilgisayarın kilidini açabilir."
IDS_CHANGEPWDTITLE "Şifre Değştirme"
IDS_NONMATCHINGPASSWORDS "Yazıdığınız şifreler birbiriyle uyuşmuyor. İki metin kutusuna aynı şifreyi yazınız."
IDS_NONMATCHINGPASSWORDS "Yazıdığınız şifreler birbiriyle uyuşmuyor. İki metin kutusunda aynı şifreyi yazınız."
IDS_PASSWORDCHANGED "Şifreniz değiştirildi."
IDS_LOGONTITLE "Oturum Açma İletisi"
IDS_LOGONWRONGUSERORPWD "Dizge oturumunuzu açamadı. Kullanıcı adınızın ve etki alanının doğru olduğundan emin olunuz, sonra şifrenizi yeniden yazınız. Şifrelerdeki harfler doğru büyük-küçük ayrımı kullanılarak yazılmalıdır."
@@ -176,5 +176,5 @@ BEGIN
IDS_SHUTDOWN_SHUTDOWN_DESC "Şimdiki oturumunuzu sonlandırır ve dizgeyi kapatır, böylece gücü güvenli olarak kapatbilirsiniz."
IDS_SHUTDOWN_RESTART_DESC "Şimdiki oturumunuzu sonlandırır dizgeyi yeniden başlatır."
IDS_SHUTDOWN_SLEEP_DESC "Dizgeyi uyku kipine geçirir."
IDS_SHUTDOWN_HIBERNATE_DESC "Şimdiki oturumu kaydeder ve bilgisayarı kapatır."
IDS_SHUTDOWN_HIBERNATE_DESC "Şimdiki oturumu saklar ve bilgisayarı kapatır."
END
+1 -1
View File
@@ -27,7 +27,7 @@ STRINGTABLE
4 "Belirtilen kurulum paketi açılamadı. Lütfen, kütüğün yolunu denetleyiniz ve yeiden deneyiniz."
5 "%s yolu bulunamadı."
9 "%s diskini takınız."
10 "Windows Yükleyici %s\n\nKullanım:\nmsiexec komut {gerekli değişkenler} [seçimlik değişkenler]\n\nBir ürün yükle:\n\t/i {paket|ürün kodu} [husûsiyet]\n\t/package {paket|ürün kodu} [husûsiyet]\n\t/a paket [husûsiyet]\nBir kurulum onar:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|ürün kodu}\nBir ürün kaldır:\n\t/uninstall {paket|ürün kodu} [husûsiyet]\n\t/x {paket|ürün kodu} [husûsiyet]\nBir ürün bildir:\n\t/j[u|m] paket [/t dönüşüm] [/g dil kimliği]\nBir yama uygula:\n\t/p yama paketi [husûsiyet]\n\t/p yama paketi /a paket [husûsiyet]\nYukarıdaki komutlar için kayıt ve kullanıcı arayüzü tümleyicileri:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] kayıt kütüğü\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI hizmetini kaydet:\n\t/y\nMSI hizmetinin kaydını sil:\n\t/z\nBu yardımı görüntüle:\n\t/help\n\t/?\n"
10 "Windows Yükleyici %s\n\nKullanım:\nmsiexec komut {gerekli değişkenler} [seçimlik değişkenler]\n\nBir ürün yükle:\n\t/i {paket|ürün kodu} [husûsiyet]\n\t/package {paket|ürün kodu} [husûsiyet]\n\t/a paket [husûsiyet]\nBir kurulum onar:\n\t/f[p|o|e|d|c|a|u|m|s|v] {paket|ürün kodu}\nBir ürün kaldır:\n\t/uninstall {paket|ürün kodu} [husûsiyet]\n\t/x {paket|ürün kodu} [husûsiyet]\nBir ürün bildir:\n\t/j[u|m] paket [/t dönüşüm] [/g dil kimliği]\nBir yama uygula:\n\t/p yama paketi [husûsiyet]\n\t/p yama paketi /a paket [husûsiyet]\nYukarıdaki komutlar için kayıt ve kullanıcı arayüzü tümleyicileri:\n\t/l[*][i|w|e|a|r|u|c|m|o|p|v|][+|!] kayıt kütüğü\n\t/q{|n|b|r|f|n+|b+|b-}\nMSI hizmetini sakla:\n\t/y\nMSI hizmetinin kaydını sil:\n\t/z\nBu yardımı görüntüle:\n\t/help\n\t/?\n"
11 "%s içeren dizini giriniz."
12 "Husûsiyet eksikliği için kurulum kaynağı"
13 "Husûsiyet eksikliği için ağ sürücüsü"
+15 -3
View File
@@ -4,10 +4,22 @@
typedef unsigned int (__stdcall *__MSVC__MsiCustomActionEntryPoint)(unsigned int);
__inline unsigned int CUSTOMPROC_wrapper(__MSVC__MsiCustomActionEntryPoint proc, unsigned int handle)
static
__declspec(naked)
unsigned int
__cdecl
CUSTOMPROC_wrapper(__MSVC__MsiCustomActionEntryPoint proc, unsigned int handle)
{
#pragma message("warning: CUSTOMPROC_wrapper might not be correct")
return proc(handle);
__asm
{
push ebp
mov ebp, esp
push dword ptr [ebp + 12]
mov eax, dword ptr [ebp + 8]
call eax
leave
ret
}
}
#endif
+1 -1
View File
@@ -93,7 +93,7 @@ BEGIN
PUSHBUTTON "S&il", IDC_DNSSUFFIXDEL, 170, 210, 50, 14, WS_TABSTOP
LTEXT "B&u Bağlantı İçin DNS Son Eki:", -1, 5, 225, 110, 14
EDITTEXT IDC_SUFFIX, 120, 225, 100, 12, WS_TABSTOP
CHECKBOX "D&NS'ye Bu Bağlantının Adreslerini Kaydet", IDC_REGSUFFIX, 15, 240, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "D&NS'ye Bu Bağlantının Adreslerini Sakla", IDC_REGSUFFIX, 15, 240, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "DNS K&aydında Bu Bağlantının DNS Son Ekini Kullan", IDC_USESUFFIX, 15, 255, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
END
+1 -1
View File
@@ -1,7 +1,7 @@
/*
* Turkish resources for oleaut32
*
* Copyright 2006 Fatih Aşıcı
* Copyright: 2006 Fatih Aşıcı
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
+7 -3
View File
@@ -19,17 +19,21 @@ _call_method:
push esi
push edi
mov edx, dword ptr ds:[ebp + 12]
mov edi, esp
shl edx, 2
jz cm1
sub esp, edx
and esp, HEX(0FFFFFFF0)
sub edi, edx
and edi, HEX(0FFFFFFF0)
mov esp, edi
mov ecx, dword ptr ds:[ebp + 12]
mov esi, dword ptr ds:[ebp + 16]
mov edi, esp
cld
rep movsd
cm1:
call dword ptr ds:[ebp + 8]
sub edi, esp
mov ecx,[ebp + 20]
mov [ecx], edi
lea esp, [ebp - 8]
pop edi
pop esi
+1 -1
View File
@@ -52,7 +52,7 @@ STRINGTABLE
IDS_RESULTOBJDESC "Belgenize yeni bir %s nesnesi ekleyiniz."
IDS_RESULTFILEOBJDESC "Belgenize kütüğün içeriğini bir nesne olarak ekleyiniz, böylece onu, kendisini oluşturan izlenceyi kullanarak etkinleştirebilirsiniz."
IDS_BROWSE "Göz At"
IDS_NOTOLEMOD "Kütük, geçerli bir OLE parçası olarak görünmüyor. OLE denetimi kaydedilemiyor."
IDS_NOTOLEMOD "Kütük, geçerli bir OLE parçası olarak görünmüyor. OLE denetimi saklanamıyor."
IDS_NOTOLEMODCAPTION "Denetim Ekle"
}
+1 -1
View File
@@ -1479,7 +1479,7 @@ static void EmbeddedPointerFree(PMIDL_STUB_MESSAGE pStubMsg,
unsigned char *memptr = membase + *(const SHORT*)&info[0];
unsigned char *saved_memory = pStubMsg->Memory;
pStubMsg->Memory = pMemory;
pStubMsg->Memory = membase;
PointerFree(pStubMsg, *(unsigned char**)memptr, info+4);
pStubMsg->Memory = saved_memory;
}
+27
View File
@@ -0,0 +1,27 @@
/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) ([email protected]) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_DOMAIN_BUILTIN_NAME "İç"
IDS_GROUP_NONE_NAME "Yok"
IDS_GROUP_NONE_COMMENT "Bayağı Kullanıcılar"
IDS_ALIAS_ADMINISTRATORS_NAME "Yöneticiler"
IDS_ALIAS_ADMINISTRATORS_COMMENT "Yöneticiler, bilgisayara veyâ etki alanına kısıtlı olmayan erişime iyedir."
IDS_ALIAS_GUESTS_NAME "Konuklar"
IDS_ALIAS_GUESTS_COMMENT "Konuklar, ön tanımlı olarak Kullanıcılar takımının üyeleriyle eşit haklara iyedir."
IDS_ALIAS_POWER_USERS_NAME "Güçlü Kullanıcılar"
IDS_ALIAS_POWER_USERS_COMMENT "Güçlü Kullanıcılar, birtakım kısıtlamalarla çoğu yönetim haklarına iyedir."
IDS_ALIAS_USERS_NAME "Kullanıcılar"
IDS_ALIAS_USERS_COMMENT "Kullanıcılar, dizge değişiklikleri yapmaktan alıkonulmuştur."
/*
* ATTENTION:
* If you translate the administator account name, keep IDS_USER_ADMINISTRATOR_NAME and
* syssetup.dll:IDS_ADMINISTRATOR_NAME synchronized.
*/
IDS_USER_ADMINISTRATOR_NAME "Yönetici"
IDS_USER_ADMINISTRATOR_COMMENT "Bilgisayarı veyâ etki alanını yönetmek için kullanılan iç hesap."
IDS_USER_GUEST_NAME "Konuk"
IDS_USER_GUEST_COMMENT "Bilgisayara veyâ etki alanına konuk erişimi için iç hesap."
END
+3 -3
View File
@@ -2179,7 +2179,7 @@ SamrEnumerateGroupsInDomain(IN SAMPR_HANDLE DomainHandle,
EnumBuffer->Buffer[i].RelativeId = Rid;
EnumBuffer->Buffer[i].Name.Length = (USHORT)NameLength;
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(DataLength + sizeof(UNICODE_NULL));
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(NameLength + sizeof(UNICODE_NULL));
/* FIXME: Disabled because of bugs in widl and rpcrt4 */
#if 0
@@ -2790,7 +2790,7 @@ SamrEnumerateUsersInDomain(IN SAMPR_HANDLE DomainHandle,
EnumBuffer->Buffer[i].RelativeId = Rid;
EnumBuffer->Buffer[i].Name.Length = (USHORT)NameLength;
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(DataLength + sizeof(UNICODE_NULL));
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(NameLength + sizeof(UNICODE_NULL));
/* FIXME: Disabled because of bugs in widl and rpcrt4 */
#if 0
@@ -3171,7 +3171,7 @@ SamrEnumerateAliasesInDomain(IN SAMPR_HANDLE DomainHandle,
EnumBuffer->Buffer[i].RelativeId = Rid;
EnumBuffer->Buffer[i].Name.Length = (USHORT)NameLength;
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(DataLength + sizeof(UNICODE_NULL));
EnumBuffer->Buffer[i].Name.MaximumLength = (USHORT)(NameLength + sizeof(UNICODE_NULL));
/* FIXME: Disabled because of bugs in widl and rpcrt4 */
#if 0
+4 -1
View File
@@ -39,4 +39,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#endif
#ifdef LANGUAGE_SQ_AL
#include "lang/sq-AL.rc"
#endif
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
+9
View File
@@ -361,6 +361,8 @@ SampRemoveUserFromAllGroups(IN PSAM_DB_OBJECT UserObject)
Status = SampRemoveMemberFromGroup(GroupObject,
UserObject->RelativeId);
if (Status == STATUS_MEMBER_NOT_IN_GROUP)
Status = STATUS_SUCCESS;
SampCloseDbObject(GroupObject);
@@ -370,6 +372,13 @@ SampRemoveUserFromAllGroups(IN PSAM_DB_OBJECT UserObject)
}
}
/* Remove all groups from the Groups attribute */
Status = SampSetObjectAttribute(UserObject,
L"Groups",
REG_BINARY,
NULL,
0);
done:
if (GroupsBuffer != NULL)
midl_user_free(GroupsBuffer);
+39
View File
@@ -0,0 +1,39 @@
/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) ([email protected]) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_EVENPARITY "Çift"
IDS_MARKPARITY "İm"
IDS_NOPARITY "Eşlik yok."
IDS_ODDPARITY "Tek"
IDS_SPACEPARITY "Boşluk"
IDS_ONESTOPBIT "1 dur biti"
IDS_ONE5STOPBITS "1,5 dur biti"
IDS_TWOSTOPBITS "2 dur biti"
IDS_FC_NO "Yok"
IDS_FC_CTSRTS "CTS/RTS"
IDS_FC_XONXOFF "Açık/Kapalı"
IDS_TITLE """%s"" Husûsiyetleri"
END
IDD_COMMDLG DIALOGEX 6, 5, 222, 175
FONT 8, "MS Shell Dlg"
STYLE 0x10C80080
EXSTYLE 0x00000001
BEGIN
CONTROL "", IDC_GRP1, "Button", 0x50000007, 6, 5, 210, 146, 0x00000000
CONTROL "Tamam", IDC_OKBTN, "Button", 0x50010000, 98, 156, 56, 13, 0x00000000
CONTROL "İptal", IDC_CANCELBTN, "Button", 0x50010000, 158, 156, 56, 13, 0x00000000
CONTROL "Baud Hızı:", IDC_STC1, "Static", 0x50000000, 24, 31, 42, 9, 0x00000000
CONTROL "Çoklu Büyüklüğü:", IDC_STC2, "Static", 0x50000000, 24, 53, 42, 9, 0x00000000
CONTROL "Eşlik:", IDC_STC3, "Static", 0x50000000, 24, 73, 42, 9, 0x00000000
CONTROL "Dur Bitleri:", IDC_STC4, "Static", 0x50000000, 24, 96, 42, 9, 0x00000000
CONTROL "Akış Denetimi:", IDC_STC5, "Static", 0x50000000, 24, 120, 42, 9, 0x00000000
CONTROL "", IDC_BAUDRATE, "ComboBox", 0x50210003, 98, 29, 100, 50, 0x00000000
CONTROL "", IDC_BYTESIZE, "ComboBox", 0x50210003, 98, 49, 100, 50, 0x00000000
CONTROL "", IDC_PARITY, "ComboBox", 0x50210003, 98, 72, 100, 50, 0x00000000
CONTROL "", IDC_STOPBITS, "ComboBox", 0x50210003, 98, 94, 100, 50, 0x00000000
CONTROL "", IDC_FLOW, "ComboBox", 0x50210003, 98, 116, 100, 50, 0x00000000
END
+3
View File
@@ -55,6 +55,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#ifdef LANGUAGE_SQ_AL
#include "lang/sq-AL.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif
+19
View File
@@ -0,0 +1,19 @@
/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) ([email protected]) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_APPTITLE "ReactOS Resim ve Belgegeçer Görüntüleyicisi"
IDS_SETASDESKBG "Masaüstü Arka Planı Olarak Ayarla"
IDS_PREVIEW "Ön İzleme"
/* Tooltips */
IDS_TOOLTIP_NEXT_PIC "Sonraki Resim"
IDS_TOOLTIP_PREV_PIC "Önceki Resim"
IDS_TOOLTIP_ZOOM_IN "Yakınlaştır (+)"
IDS_TOOLTIP_ZOOM_OUT "Uzaklaştır (-)"
IDS_TOOLTIP_ROT_CLOCKW "Saat Yönünde Döndür (Ctrl+K)"
IDS_TOOLTIP_ROT_COUNCW "Saat Yönünün Tersi Yönünde Döndür (Ctrl+L)"
IDS_TOOLTIP_PRINT "Yazdır (Ctrl+P)"
IDS_TOOLTIP_SAVEAS "Ayrı Sakla... (Ctrl+S)"
END
+3
View File
@@ -67,6 +67,9 @@ IDB_ROT2ICON BITMAP "res/rot2.bmp"
#ifdef LANGUAGE_SQ_AL
#include "lang/sq-AL.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif
+11 -11
View File
@@ -1,7 +1,7 @@
/*
* Turkish resources for shlwapi
*
* Copyright 2006 Fatih Aşıcı
* Copyrights: 2006 Fatih Aşıcı ([email protected]), 2014 Erdem Ersoy (eersoy93) ([email protected])
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,22 +22,22 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
IDD_ERR_DIALOG DIALOG 0, 0, 220, 60
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hata!"
CAPTION "Yanlışlık!"
FONT 8, "MS Shell Dlg"
{
LTEXT "", IDS_ERR_USER_MSG2, 15, 5, 28, 20
LTEXT "", IDS_ERR_USER_MSG, 15, 5, 210, 8
CHECKBOX "Bu iletiyi bir daha &gösterme", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Tamam", IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&İptal", IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Evet", IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Hayır", IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
CHECKBOX "&Bana Bu İletiyi Bir Daha Gösterme", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON L"&Tamam", IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON L"&İptal", IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON L"&Evet", IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON L"&Hayır", IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
{
IDS_BYTES_FORMAT "%ld bytes"
IDS_TIME_INTERVAL_HOURS " hr"
IDS_TIME_INTERVAL_MINUTES " min"
IDS_TIME_INTERVAL_SECONDS " sec"
IDS_BYTES_FORMAT "%ld çoklu"
IDS_TIME_INTERVAL_HOURS " saat"
IDS_TIME_INTERVAL_MINUTES " dakîka"
IDS_TIME_INTERVAL_SECONDS " sâniye"
}
+2 -2
View File
@@ -45,7 +45,7 @@ BEGIN
LTEXT "&Bilgisayar Adı:", IDC_STATIC, 54, 38, 75, 8
EDITTEXT IDC_COMPUTERNAME, 165, 35, 148, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE
ICON IDI_ICON5, IDC_STATIC, 21, 57, 20, 20
LTEXT "Kur,'Administrator' adıyla bir yönetici hesabı oluşturacak. Bu hesabı bilgisayara tam erişim için kullanabileceksiniz.", IDC_STATIC, 54, 57, 250, 25
LTEXT "Kur, ""Yönetici"" adıyla bir yönetici hesabı oluşturacak. Bu hesabı bilgisayara tam erişim için kullanabileceksiniz.", IDC_STATIC, 54, 57, 250, 25
LTEXT "127 karakter yada daha az bir Yönetici Parolası yazın.", IDC_STATIC, 54, 87, 250, 8
LTEXT "&Yönetici Parolası:", IDC_STATIC, 54, 104, 105, 8
EDITTEXT IDC_ADMINPASSWORD1, 165, 101, 148, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD
@@ -154,7 +154,7 @@ BEGIN
* samsrv.dll:IDS_USER_ADMINISTRATOR_NAME synchronized.
* Also check the IDD_COMPUTERPAGE dialog.
*/
IDS_ADMINISTRATOR_NAME "Administrator"
IDS_ADMINISTRATOR_NAME "Yönetici"
END
STRINGTABLE
+448
View File
@@ -0,0 +1,448 @@
/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) ([email protected]) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
101 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Çevirme Kâideleri"
FONT 8, "MS Shell Dlg"
BEGIN
ICON 201, 2000, 7, 7, 21, 20
LTEXT "Aşağıdaki dizelge, belirttiğiniz konumları gösterir. İçinden çevirdiğiniz konumu seçiniz.", -1, 35, 7, 210, 16
LTEXT "&Konumlar:", -1, 7, 35, 210, 8
CONTROL "", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000011D, 7, 46, 238, 105, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yeni...", 1030, 87, 155, 50, 14
PUSHBUTTON "&Düzenle...", 1031, 141, 155, 50, 14
PUSHBUTTON "&Sil", 1032, 195, 155, 50, 14
LTEXT "Telefon numarası şöyle çevrilecek:", 1052, 7, 181, 100, 8
LTEXT "", 1053, 14, 195, 224, 16
END
102 DIALOGEX 0, 0, 252, 255
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Umûmî"
FONT 8, "MS Shell Dlg"
BEGIN
ICON 202, 2000, 7, 7, 20, 20
LTEXT "&Konum Adı:", -1, 35, 11, 56, 8, SS_CENTERIMAGE
EDITTEXT 1038, 96, 8, 149, 14, ES_AUTOHSCROLL
LTEXT "İçinden çevireceğiniz konumu belirtiniz.", 2001, 7, 33, 238, 8
LTEXT "&Ülke ya da Bölge:", -1, 7, 49, 161, 8
COMBOBOX 1006, 7, 60, 175, 200, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
LTEXT "&Alan Kodu:", -1, 190, 49, 48, 8
EDITTEXT 1034, 190, 60, 48, 12, ES_AUTOHSCROLL
GROUPBOX "Çevirme Kâideleri", 2002, 7, 80, 238, 92
LTEXT "Bu Konumdan Çevrildiğinde Aşağıdaki Kâideleri Kullan:", 2003, 14, 92, 224, 8
LTEXT "&Yerli Aramalar İçin, Bir Dış Geçeğe Erişmek İçin Şunu Çevir:", -1, 14, 106, 170, 8
EDITTEXT 1010, 190, 104, 48, 12, ES_AUTOHSCROLL
LTEXT "&Uzun Aralıklı Aramalar İçin, Bir Dış Geçeğe Erişmek İçin Şunu Çevir:", -1, 14, 122, 170, 8
EDITTEXT 1011, 190, 120, 48, 12, ES_AUTOHSCROLL
LTEXT "U&zun Aralıklı Aramalar Yapmak İçin Şu Taşıyıcı Kodu Kullan:", -1, 14, 138, 170, 8
EDITTEXT 1059, 190, 136, 48, 12, ES_AUTOHSCROLL
LTEXT "U&luslararası Aramalar Yapmak İçin Şu Taşıyıcı Kodu Kullan:", -1, 14, 154, 170, 8
EDITTEXT 1060, 190, 152, 48, 12, ES_AUTOHSCROLL
AUTOCHECKBOX "A&rama Bekletmeyi Edilginleştirmek İçin Şunu Çevir:", 1035, 14, 177, 170, 10
COMBOBOX 1013, 190, 176, 48, 73, CBS_DROPDOWN | CBS_SORT | WS_VSCROLL
LTEXT "Şunu Kullanarak Çevir:", -1, 14, 195, 40, 8
AUTORADIOBUTTON "&Titrem", 1036, 58, 194, 50, 10, NOT WS_TABSTOP
AUTORADIOBUTTON "&Vuruş", 1037, 112, 194, 50, 10, NOT WS_TABSTOP
LTEXT "Telefon numarası şöyle çevrilecek:", 1052, 7, 219, 100, 8
LTEXT "", 1053, 14, 232, 224, 16
END
103 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Alan Kodu Kâideleri"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bir alan kodu kâidesi, şimdiki alan kodunuzdan başka alan kodlarına ve alan kodunuz içinde telefon numaralarının nasıl çevrileceğini belirtir.", 2000, 7, 7, 238, 16
LTEXT "&Alan Kodu Kâideleri:", -1, 7, 31, 238, 8
CONTROL "", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000801D, 7, 42, 238, 99, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yeni...", 1030, 87, 147, 50, 14
PUSHBUTTON "&Düzenle...", 1031, 141, 147, 50, 14
PUSHBUTTON "&Sil", 1032, 195, 147, 50, 14
GROUPBOX "Tanım", 2006, 7, 166, 238, 45
LTEXT "", 1039, 14, 180, 224, 24
END
104 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Arama Kartı"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Kullanacağınız arama kartını seçiniz ya da ayrı bir kart eklemek için Yeni'ye tıklayınız.", 2000, 7, 7, 238, 8
LTEXT "&Kart Türleri:", -1, 7, 23, 238, 8
CONTROL "", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000400D, 7, 34, 238, 63, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yeni...", 1030, 87, 103, 50, 14
PUSHBUTTON "&Düzenle...", 1031, 141, 103, 50, 14
PUSHBUTTON "&Sil", 1032, 195, 103, 50, 14
LTEXT "&Hesap Numarası:", -1, 7, 127, 91, 8
EDITTEXT 1018, 102, 125, 143, 12, ES_AUTOHSCROLL
LTEXT "&Şahsî Kimlik Numarası (PIN):", -1, 7, 145, 91, 8
EDITTEXT 1019, 102, 143, 143, 12, ES_AUTOHSCROLL
GROUPBOX "Şunlar İçin Erişim Telefon Numaraları", 2001, 7, 158, 238, 53
LTEXT "Uzun Aralıklı Aramalar:", -1, 14, 172, 84, 8
LTEXT "", 1042, 102, 172, 136, 8
LTEXT "Uluslararası Aramalar:", -1, 14, 184, 84, 8
LTEXT "", 1043, 102, 184, 136, 8
LTEXT "Yerli Aramalar:", -1, 14, 196, 84, 8
LTEXT "", 1051, 102, 196, 136, 8
END
105 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Umûmî"
FONT 8, "MS Shell Dlg"
BEGIN
ICON 203, 2000, 7, 7, 20, 20
LTEXT "&Arama Kartı Adı:", -1, 35, 12, 64, 8, SS_CENTERIMAGE
EDITTEXT 1047, 105, 9, 140, 14, ES_AUTOHSCROLL
LTEXT "&Hesap Numarası:", -1, 7, 35, 238, 8
EDITTEXT 1018, 7, 46, 116, 14, ES_AUTOHSCROLL
LTEXT "&Şahsî Kimlik Numarası (PIN):", -1, 7, 68, 238, 8
EDITTEXT 1019, 7, 80, 116, 14, ES_AUTOHSCROLL
LTEXT "Şuyken bu arama kartı kullanılacak:", 1056, 14, 117, 224, 8
GROUPBOX "Arama Kartı Ayrıntıları", 2001, 7, 105, 238, 66
LTEXT "", 1000, 22, 131, 216, 8
LTEXT "", 1001, 22, 143, 216, 8
LTEXT "", 1002, 22, 155, 216, 8
END
106 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Uzun Aralıklı"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Uzun Aralıklı Aramalar İçin Erişim Numarası:", -1, 7, 7, 238, 8
EDITTEXT 1044, 7, 18, 140, 14, ES_AUTOHSCROLL
LTEXT "Uzun aralıklı aramalar yapmak için, çevirme adımlarını girmek için aşağıdaki düğmeleri kullanınız. Bu adımları, arama kartınızda göründüğü gibi doğru diziyle giriniz.", 2000, 7, 40, 238, 24
LTEXT "&Arama Kartı Çevirme Adımları:", -1, 7, 72, 80, 8
CONTROL "List1", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000400D, 7, 83, 184, 74, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yukarı Taşı", 1022, 195, 83, 50, 14
PUSHBUTTON "A&şağı Taşı", 1023, 195, 101, 50, 14
PUSHBUTTON "&Sil", 1024, 195, 119, 50, 14
PUSHBUTTON "&Erişim Numarası", 1025, 7, 161, 90, 14
PUSHBUTTON "&Hesap Numarası", 1018, 101, 161, 90, 14
PUSHBUTTON "&PIN", 1019, 7, 179, 90, 14
PUSHBUTTON "E&rek Numarası...", 1020, 101, 179, 90, 14
PUSHBUTTON "&İstem İçin Bekle...", 1017, 7, 197, 90, 14
PUSHBUTTON "&Basamakları Belirt...", 1021, 101, 197, 90, 14
END
107 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Uluslararası"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Uluslararası Aramalar İçin Erişim Numarası:", -1, 7, 7, 238, 8
EDITTEXT 1045, 7, 18, 140, 14, ES_AUTOHSCROLL
LTEXT "Uluslararası aramalar yapmak için, çevirme adımlarını girmek için aşağıdaki düğmeleri kullanınız. Bu adımları, arama kartınızda göründüğü gibi doğru diziyle giriniz.", 2000, 7, 40, 244, 24
LTEXT "&Arama Kartı Çevirme Adımları:", -1, 7, 72, 80, 8
CONTROL "List1", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000400D, 7, 83, 184, 74, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yukarı Taşı", 1022, 195, 83, 50, 14
PUSHBUTTON "A&şağı Taşı", 1023, 195, 101, 50, 14
PUSHBUTTON "&Sil", 1024, 195, 119, 50, 14
PUSHBUTTON "&Erişim Numarası", 1025, 7, 161, 90, 14
PUSHBUTTON "&Hesap Numarası", 1018, 101, 161, 90, 14
PUSHBUTTON "&PIN", 1019, 7, 179, 90, 14
PUSHBUTTON "E&rek Numarası...", 1020, 101, 179, 90, 14
PUSHBUTTON "&İstem İçin Bekle...", 1017, 7, 197, 90, 14
PUSHBUTTON "&Basamakları Belirt...", 1021, 101, 197, 90, 14
END
108 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Yerli Aramalar"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Yer&li Aramalar İçin Erişim Numarası:", -1, 7, 7, 238, 8
EDITTEXT 1008, 7, 18, 140, 14, ES_AUTOHSCROLL
LTEXT "Yerli aramalar yapmak için, çevirme adımlarını girmek için aşağıdaki düğmeleri kullanınız. Bu adımları, arama kartınızda göründüğü gibi doğru diziyle giriniz. Arama kartınızı kullanmadan yerli aramalar yapmak için bu bölümü boş bırakınız.", 2000, 7, 40, 238, 24
LTEXT "&Arama Kartı Çevirme Adımları:", -1, 7, 72, 238, 8
CONTROL "List1", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000400D, 7, 83, 184, 74, WS_EX_CLIENTEDGE
PUSHBUTTON "&Yukarı Taşı", 1022, 195, 83, 50, 14
PUSHBUTTON "A&şağı Taşı", 1023, 195, 101, 50, 14
PUSHBUTTON "&Sil", 1024, 195, 119, 50, 14
PUSHBUTTON "&Erişim Numarası", 1025, 7, 161, 90, 14
PUSHBUTTON "&Hesap Numarası", 1018, 101, 161, 90, 14
PUSHBUTTON "&PIN", 1019, 7, 179, 90, 14
PUSHBUTTON "E&rek Numarası...", 1020, 101, 179, 90, 14
PUSHBUTTON "&İstem İçin Bekle...", 1017, 7, 197, 90, 14
PUSHBUTTON "&Basamakları Belirt...", 1021, 101, 197, 90, 14
END
109 DIALOGEX 0, 0, 252, 257
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP
CAPTION "Yeni Alan Kodu Kâidesi"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bu alan kodu kâidesi, yalnızca alan koduna yapılan aramalara ve aşağıda belirttiğiniz ön ek düzenine uygulayacaktır.", 2000, 7, 6, 238, 16
LTEXT "Aradığınız Alan Kodu:", -1, 7, 31, 110, 8
LTEXT "&Alan Kodu:", -1, 7, 47, 36, 8
EDITTEXT 1034, 46, 44, 50, 14, ES_AUTOHSCROLL
LTEXT "Bu alan kodu kâidesi için kullanılan ön ekleri belirtiniz.", -1, 14, 78, 224, 8
AUTORADIOBUTTON "&Bu Alan Kodu İçine Tüm Ön Ekleri Ekle", 1014, 14, 90, 224, 12, NOT WS_TABSTOP
AUTORADIOBUTTON "&Yalnızca Aşağıdaki Dizelgedeki Ön Ekleri Ekle", 1015, 14, 104, 224, 12, NOT WS_TABSTOP
LTEXT "&Eklemek İçin Ön Ekler:", 1057, 26, 117, 119, 8
CONTROL "List1", 1033, "SysListView32", WS_BORDER | WS_TABSTOP | 0x0000411D, 25, 128, 66, 32, WS_EX_CLIENTEDGE
PUSHBUTTON "E&kle...", 1005, 95, 128, 50, 14
PUSHBUTTON "&Sil", 1024, 95, 146, 50, 14
LTEXT "Aşağıdaki Ön Ekleri İçeren Telefon Numaraları Çevrildiğinde:", -1, 14, 184, 224, 8
AUTOCHECKBOX "&Çevir:", 1012, 14, 198, 30, 12
EDITTEXT 1007, 46, 196, 42, 14, ES_AUTOHSCROLL
AUTOCHECKBOX "A&lan Kodunu Ekle", 1029, 14, 214, 85, 12
DEFPUSHBUTTON "Tamam", 1, 141, 236, 50, 14
PUSHBUTTON "İptal", 2, 195, 236, 50, 14
RTEXT "Alan Kodu", 2001, 133, 31, 51, 8
LTEXT "Ön Ek", 2002, 200, 31, 45, 8
CONTROL "", 2003, "STATIC", SS_BLACKFRAME | SS_SUNKEN, 180, 41, 1, 6
CONTROL "", 2004, "STATIC", SS_BLACKFRAME | SS_SUNKEN, 203, 41, 1, 6
RTEXT "X - X X X - X X X - X X X X", 2005, 133, 48, 112, 8
GROUPBOX "Ön Ekler", -1, 7, 64, 238, 102
GROUPBOX "Kâideler", -1, 7, 170, 238, 60
END
110 DIALOGEX 0, 0, 227, 82
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "", 1003, 7, 7, 213, 8
LTEXT "", 1039, 7, 23, 213, 8
EDITTEXT 1031, 7, 34, 213, 14, ES_AUTOHSCROLL
DEFPUSHBUTTON "Tamam", 1, 116, 62, 50, 14
PUSHBUTTON "İptal", 2, 170, 62, 50, 14
END
111 DIALOGEX 0, 0, 252, 124
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP
CAPTION "Şunun İçin Bekle"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Çevirme dizisiyle sürdürmeden önce beklemek için istemin türünü seçiniz.", 2000, 7, 7, 238, 16
AUTORADIOBUTTON "&Bir Çevirme Sesi İçin Bekle", 1009, 7, 31, 238, 10, WS_GROUP
AUTORADIOBUTTON "B&itirmek İçin Bir Ses İletisi İçin Bekle", 1016, 7, 47, 238, 10, NOT WS_TABSTOP
AUTORADIOBUTTON "Bi&r Belirli Uzunluktaki Süre İçin Bekle:", 1048, 7, 63, 238, 10, NOT WS_TABSTOP
EDITTEXT 1050, 18, 77, 36, 14, ES_AUTOHSCROLL | WS_GROUP
CONTROL "Spin1", 1049, "msctls_updown32", 0x00000036, 42, 78, 11, 14
LTEXT "&sâniye", -1, 58, 81, 187, 8
DEFPUSHBUTTON "Tamam", 1, 141, 103, 50, 14
PUSHBUTTON "İptal", 2, 195, 103, 50, 14
END
112 DIALOGEX 0, 0, 252, 111
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP
CAPTION "Varış Numarası"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Bu adım, arama kartı dizisi içine çevireceğiniz varış numarasını yerleştirecektir. Varış numarasını çevirdiğinizde numaranın hangi bölümlerini çevirmek istersiniz?", 2000, 7, 7, 238, 24
AUTOCHECKBOX "&Ülke ya da Bölge Kodunu Çevir", 1027, 7, 39, 238, 10
AUTOCHECKBOX "&Alan Kodunu Çevir", 1034, 7, 55, 238, 10
AUTOCHECKBOX "&Numarayı Çevir", 1008, 7, 71, 238, 10, WS_DISABLED
DEFPUSHBUTTON "Tamam", 1, 141, 92, 50, 14
PUSHBUTTON "İptal", 2, 195, 92, 50, 14
END
113 DIALOGEX 0, 0, 252, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Gelişmiş"
FONT 8, "MS Shell Dlg"
BEGIN
ICON 201, 2000, 7, 7, 20, 20
LTEXT "Bu bilgisayarda aşağıdaki telefon sağlayıcıları kurulmuştur:", -1, 40, 7, 205, 8
LTEXT "S&ağlayıcılar:", -1, 7, 35, 238, 8
LISTBOX 1033, 7, 46, 238, 147, LBS_STANDARD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP
PUSHBUTTON "&Ekle...", 1005, 87, 197, 50, 14
PUSHBUTTON "&Sil", 1024, 141, 197, 50, 14
PUSHBUTTON "&Yapılandır...", 1031, 195, 197, 50, 14
END
114 DIALOGEX 20, 15, 252, 127
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
CAPTION "Sağlayıcı Ekle"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Aşağıdaki dizelgeden kurmak istediğiniz sağlayıcıyı seçiniz ve Ekle'ye tıklayınız.", 2000, 7, 7, 241, 8
LTEXT "&Telefon Sağlayıcıları:", -1, 7, 23, 144, 10
LISTBOX 1055, 7, 34, 238, 74, LBS_STANDARD | WS_TABSTOP
PUSHBUTTON "&Ekle", 1005, 141, 106, 50, 14
DEFPUSHBUTTON "İptal", 2, 195, 106, 50, 14
END
115 DIALOGEX 10, 10, 303, 228
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_CONTEXTHELP
CAPTION "Konum Bilgisi"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL 302, 302, "STATIC", SS_BITMAP, 10, 10, 88, 155
LTEXT "Bir telefon ya da çevirge bağlantısı yapabilmenizden önce ReactOS'un şimdiki konumunuz üzerine aşağıdaki bilgilere gereksinimi vardır.", 2000, 107, 15, 188, 25
LTEXT "&Şimdi içinde bulunduğunuz ülke ya da bölge nedir?", -1, 107, 43, 189, 10
COMBOBOX 1006, 107, 55, 180, 200, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
LTEXT "Ş&imdi içinde bulunduğunuz alan kodu ya da kent kodu nedir?", -1, 107, 74, 189, 10
EDITTEXT 1034, 107, 87, 45, 12, ES_AUTOHSCROLL
LTEXT "Bi&r taşıyıcı kod belirlemeye gereksiniminiz varsa o nedir?", -1, 107, 105, 189, 10
EDITTEXT 1058, 106, 118, 45, 12, ES_UPPERCASE | ES_AUTOHSCROLL
LTEXT "&Bir dış geçeğe erişmek için bir numarayı çevirirseniz o nedir?", -1, 107, 137, 189, 10
EDITTEXT 1010, 107, 149, 45, 12, ES_UPPERCASE | ES_AUTOHSCROLL
LTEXT "Bu konumdaki telefon dizgesi şunu kullanır:", -1, 107, 168, 189, 10
AUTORADIOBUTTON "&Titremli Çevirme", 1036, 107, 178, 57, 14, WS_GROUP | NOT WS_TABSTOP
AUTORADIOBUTTON "&Vuruşlu Çevirme", 1037, 175, 178, 57, 14, NOT WS_TABSTOP
DEFPUSHBUTTON "Tamam", 1, 192, 204, 50, 14
PUSHBUTTON "İptal", 2, 246, 204, 50, 14
END
400 DIALOGEX 0, 0, 290, 151
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL 302, 302, "STATIC", SS_BITMAP, 0, 0, 88, 155
LTEXT "Bir telefon ya da çevirge bağlantısı yapabilmenizden önce ReactOS'un şimdiki konumunuz üzerine aşağıdaki bilgilere gereksinimi vardır.", 2000, 95, 2, 188, 25
LTEXT "&Şimdi içinde bulunduğunuz ülke ya da bölge nedir?", -1, 95, 30, 188, 10
COMBOBOX 1006, 95, 41, 177, 68, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
LTEXT "Ş&imdi içinde bulunduğunuz alan kodu ya da kent kodu nedir?", -1, 95, 61, 188, 10
EDITTEXT 1034, 95, 73, 40, 14, ES_AUTOHSCROLL
LTEXT "&Bir dış geçeğe erişmek için bir numarayı çevirirseniz o nedir?", -1, 95, 96, 188, 10
EDITTEXT 1010, 95, 107, 40, 14, ES_UPPERCASE | ES_AUTOHSCROLL
LTEXT "Bu konumdaki telefon dizgesi şunu kullanır:", -1, 95, 129, 159, 10
AUTORADIOBUTTON "&Titremli Çevirme", 1036, 95, 139, 55, 12, WS_GROUP | NOT WS_TABSTOP
AUTORADIOBUTTON "&Vuruşlu Çevirme", 1037, 155, 139, 55, 12, NOT WS_TABSTOP
END
500 DIALOGEX 0, 0, 235, 88
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "ReactOS Gezgini"
FONT 8, "MS Shell Dlg"
BEGIN
ICON 504, 501, 13, 14, 21, 20
LTEXT "", 502, 47, 15, 180, 32
AUTOCHECKBOX "&Gelecekte Sürekli Bu Sayfaya Güven", 503, 50, 47, 147, 12
DEFPUSHBUTTON "Tamam", 505, 110, 65, 50, 14
PUSHBUTTON "İptal", 506, 164, 65, 50, 14
END
STRINGTABLE
BEGIN
1 "Telefon ve Çevirge Seçenekleri"
2 "Çevirgenizi kullanmak için çevirme kâidelerini ve husûsiyetleri yapılandır."
3 "Konum"
4 "Yeni bir konum oluşturmak için Yeni'ye tıklayınız."
5 "Yeni Konum"
6 "Konumu Düzenle"
7 "Yeni Arama Kartı"
8 "Arama Kartını Düzenle"
9 "Alan Kodu"
10 "Ön Ekler"
11 "Kâide"
12 "Girdiğiniz damga geçersiz.\n\nGeçerli damgalar; 0 ilâ 9, *, #, ve virgüldür."
13 "Girdiğiniz damga geçersiz.\n\nGeçerli damgalar; 0 ilâ 9, *, #, boşluk ve virgüldür."
14 "Girdiğiniz damga geçersiz.\n\nGeçerli damgalar; 0 ilâ 9'dur."
15 "Girdiğiniz damga geçersiz."
16 "Çevir: %1"
17 "Çevir: %1 ve alan kodu."
18 "Alan kodunu çevir."
19 "Yalnızca numarayı çevir."
20 "Tümü"
21 "Seçili"
22 "Alan Kodu Kâidesi'ni Düzenle"
23 "Husûsiyetlerini görüntülemek için yukarıdaki dizelgede bir kâide seçiniz ya da bir kâide eklemek için Yeni'ye tıklayınız."
24 "%1 alan kodu içindeki tüm aramalar için numaradan önce ""%2"" kodunu ve alan kodunu çeviriniz."
25 "%1 alan kodu içindeki tüm aramalar için numaradan önce ""%2"" kodunu çeviriniz."
26 "%1 alan kodu içindeki tüm aramalar için numaradan önce alan kodunu çeviriniz."
27 "%1 alan kodu içindeki tüm aramalar için yalnızca numarayı çeviriniz."
28 "Belirlediğiniz ön eki içeren %1 alan kodu içindeki aramalar için numaradan önce ""%2"" kodunu ve alan kodunu çeviriniz."
29 "Belirlediğiniz ön eki içeren %1 alan kodu içindeki aramalar için numaradan önce ""%2"" kodunu çeviriniz."
30 "Belirlediğiniz ön eki içeren %1 alan kodu içindeki aramalar için numaradan önce alan kodunu çeviriniz."
31 "Belirlediğiniz ön eki içeren %1 alan kodu içindeki aramalar için yalnızca numarayı çeviriniz."
32 "Başka tüm alan kodları içindeki aramalardan önce 1 sayısını çeviriniz ve tüm ön ekler için alan kodunu ekleyiniz."
33 "Ön Ek Ekle"
34 "Bir ya da daha çok, boşluklarla ya da virgüllerle ayrılan ön ek giriniz."
35 "Basamakları Belirle"
36 "Çevrilmek için * ve # içinde olmak üzere bir ya da daha çok basamak giriniz."
37 "Geçersiz bir damga girmeye çalıştınız.\n\nGeçerli damgalar, 0 ilâ 9 ve boşluktur."
38 "%1!d! sâniye bekleyiniz."
39 "Erişim numarasını çeviriniz."
40 "Hesap numarasını çeviriniz."
41 "PIN numarasını çeviriniz."
42 "Bir çevirme sesi bekleyiniz."
43 "Bitirmek için bir sesli ileti bekleyiniz."
44 "Ülke ya da bölge kodunu, alan kodunu ve numarayı çeviriniz."
45 "Ülke ya da bölge kodunu ve numarayı çeviriniz."
46 "Alan kodunu ve numarayı çeviriniz."
47 "Ülke ya da bölge kodunu çeviriniz."
48 "Alan kodunu çeviriniz."
49 "Numarayı çeviriniz."
50 "uzun aralıklı aramalar çevriliyor."
51 "uluslararası aramalar çevriliyor."
52 "yerli aramalar çevriliyor."
53 "Bu arama kartının nasıl kullanılması üzerine kâide tanımlanmamış."
54 "Bu konum için uzun aralıklı taşıyıcı kodu girmelisiniz."
55 "Bu konum için bir ad girmelisiniz."
56 "Bu konum için alan kodunu girmelisiniz."
57 "Arama bekletmeyi edilginleştirmek için çevirmeye numara seçmelisiniz."
58 "İçinden çevirdiğiniz ülkeyi ya da bölgeyi seçmelisiniz."
59 "Eksik Bilgi"
60 "Girdiğiniz konum adı önceden kullanımda. Lütfen eşsiz bir ad giriniz."
61 "Bu arama kartında birtakım gerekli bilgiler eksik. Bu kartı kullanmak için, daha çok bilgi sağlamak için Düzenle'ye tıklayınız ya da ayrı bir kart seçiniz."
62 "Bir ön tanımlı arama kartı seçmelisiniz. Dizelgeden bir kart seçiniz ya da yeni bir kart oluşturmak için Yeni'ye tıklayınız."
63 "Arama kartı adını girmelisiniz."
64 "Hesap numarasını girmelisiniz."
65 "PIN numarasını girmelisiniz."
66 "Bu arama kartı için kâde tanımlanmamış. Bir kâide oluşturmak için Uzun Aralıklı, Uluslararası ya da Yerli Aramalar sekmelerini seçiniz."
67 "Uzun aralıklı kâideniz, arama kartınızın uzun aralıklı erişim numarasını gerektiriyor."
68 "Uluslararası kâideniz, arama kartınızın uluslararası erişim numarasını gerektiriyor."
69 "Yerli kâideniz, arama kartınızın yerli erişim numarasını gerektiriyor."
70 "Yok"
71 "Seçili Telefon Hizmeti Sağlayıcısı'nı silmek istediğinizden emin misiniz?"
72 "<Kurulu hizmet sağlayıcısı yok.>"
73 "Bu kâidenin uyguladığı ön ekleri girmelisiniz."
74 "&Basamaklar:"
75 "&Ön Ekler:"
76 "Geçersiz bir damga girmeye çalıştınız.\n\nGeçerli damgalar; 0 ilâ 9, boşluk ve virgüldür."
77 "Silmeyi Doğrula"
78 "Bu konumu silmeyi istediğinizden emin misiniz?"
79 "Bu arama kartını silmek istediğinizden emin misiniz?"
80 "Bu alan kodu kâidesini silmek istediğinizden emin misiniz?"
81 "Çevirmek için basamakları girmelisiniz."
82 "Girdiğiniz arama kartı adı önceden kullanımda. Lütfen eşsiz bir ad giriniz."
83 "ReactOS, içinden çevireceğiniz konum üzerine telefon bilgisine gereksinim duyar. Bu bilgiyi sağlamadan iptal ederseniz, bu izlence çevirirken doğru çalışmayabilir. Ek olarak, birtakım uygulamalar onu gecikmeden yeniden göndererek bu iletişim kutusunu iptal ettiğinize yanıt verir.\nİptal etmek istedğinizden emin misiniz?"
84 "Doğrulamayı İptal Et"
85 "Konumum"
86 "<Kurulum için hizmet sağlayıcısı yok.>"
87 "Girdiğiniz damga geçersiz.\n\nGeçerli damgalar; 0 ilâ 9, A ilâ D, *, #, +, !, boşluk ve virgüldür."
88 "Bu konum için uluslararası taşıyıcı kodu girmelisiniz."
89 "Bu konum için taşıyıcı kodu girmelisiniz."
90 "Bu sayfa, bilgisayarınızda telefon aramalarını veyâ başka çoklu ortam bağlantılarını yapmaya veyâ izlemeye çalışıyor.\nSürdürmek için ona izin vermek istiyor musunuz?"
91 "Bu sayfa, ağınızda dizin bilgisine erişmeye çalışıyor.\nSürdürmek için ona izin vermek istiyor musunuz?"
92 "Bu sayfa, ağ toplantı bilgisine erişmeye veyâ bunu değiştirmeye çalışıyor.\nSürdürmek için ona izin vermek istiyor musunuz?"
93 "Bu sayfa, değer defteri bilgisine erişmeye veyâ bunu değiştirmeye çalışıyor.\nSürdürmek için ona izin vermek istiyor musunuz?"
1064 "Telefon ve Çeivrge denetim masası açılamıyor. Bir telefon hizmetini başlatma sorununuz olabilir."
1065 "Sağlayıcı Sil"
15800 "23"
15801 "0,""Yok (Doğrudan Çevir) ("","""","""","""","""","""","""","""","""",1)"
15802 "1,""AT&T Doğrudan Çevir (1010ATT1"","""",""G"",""J1FG"",""J011EFG"","""","""",""1010288"",""1010288"",1)"
15803 "2,""AT&T (1010ATT0"","""",""G"",""J0FG$TH"",""J01EFG$TH"","""","""",""1010288"",""1010288"",1)"
15804 "3,""AT&T (1-800-321-0288"","""",""G"",""J$TFG$TH"",""J$T01EFG$TH"","""","""",""18003210288"",""18003210288"",1)"
15805 "4,""MCI Doğrudan Çevir (10102221"","""",""G"",""J1FG"",""J011EFG"","""","""",""1010222"",""1010222"",1)"
15806 "5,""MCI (10102220"","""",""G"",""J0FG$TH"",""J01EFG$TH"","""","""",""1010222"",""1010222"",1)"
15807 "6,""MCI (1-800-888-8000"","""",""G"",""J,,,,,,TH,,FG"",""J,,,,,,TH,,011EFG"","""","""",""18008888000"",""18008888000"",1)"
15808 "7,""MCI (1-800-674-0700"","""",""G"",""J,,,,,,TH,,FG"",""J,,,,,,TH,,011EFG"","""","""",""18006740700"",""18006740700"",1)"
15809 "8,""MCI (1-800-674-7000"","""",""G"",""J,,,,,,TH,,FG"",""J,,,,,,TH,,011EFG"","""","""",""18006747000"",""18006747000"",1)"
15810 "9,""ABD Sprint Doğrudan Çevir (10103331"","""",""G"",""J1FG"",""J011EFG"","""","""",""1010333"",""1010333"",1)"
15811 "10,""ABD Sprint (10103330"","""",""G"",""J0FG$TH"",""J01EFG$TH"","""","""",""1010333"",""1010333"",1)"
15812 "11,""ABD Sprint (1-800-877-8000"","""",""G"",""J,,,T0FG,,H"",""J,,,T01EFG#,H"","""","""",""18008778000"",""18008778000"",1)"
15813 "12,""Arama Kartı (0"","""",""G"",""0FG$TH"",""01EFG$TH"","""","""","""","""",1)"
15814 "13,""Carte France Telecom ("","""",""T3010,H,0FG#"",""T3010,H,0FG#"",""T3010,H,00EFG#"","""","""","""","""",1)"
15815 "14,""Mercury (BK) ("","""",""J$TH,0FG"",""J$TH,0FG"",""J$TH,0FG"","""",""0500800800"",""0500800800"",""0500800800"",1)"
15816 "15,""İngiliz Telekom (BK) ("","""",""J$H,0FG"",""J$H,0FG"",""J$H,00EFG"","""",""144"",""144"".""144"",1)"
15817 "16,""CLEAR İletişim (Yeni Zelanda) ("","""",""J$TH,0FG"",""J$TH,0FG"",""J$TH,00EFG"","""",""0502333"",""0502333"",""0502333"",1)"
15818 "17,""Telekom Yeni Zelanda ("","""",""J,0FG?H"",""J,0FG?H"",""J,00EFG?H"","""",""012"",""012"",""012"",1)"
15819 "18,""Yeryüzülük Kart (Tayvan'dan ABD'ye) ("","""",""G"",""0FG"",""J,102880$TFG$H"","""","""","""",""0080"",1)"
15820 "19,""Telstra (Avustralya), 1818 ile (ses) ("","""",""J$TH,FG#"",""J$TH,FG#"",""J$TH,0011EFG#"","""",""1818"",""1818"",""1818"",1)"
15821 "20,""Telstra (Avustralya), 1818 ile (belgegeçer) ("","""",""J$TH,FG#"",""J$TH,FG#"",""J$TH,0015EFG#"","""",""1818"",""1818"",""1818"",1)"
15822 "21,""Optus (Avustralya), 1812 ile ("","""",""FG"",""FG"",""J@TH,0011EFG"","""","""","""",""1812"",1)"
15823 "22,""Optus (Avustralya), 008551812 ile ("","""",""FG"",""FG"",""J@TH,0011EFG"","""","""","""",""008551812"",1)"
END
+3
View File
@@ -44,6 +44,9 @@ IDB_WIZARD BITMAP "res/302.bmp"
#ifdef LANGUAGE_SQ_AL
#include "lang/sq-AL.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif
+32
View File
@@ -0,0 +1,32 @@
/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) ([email protected]) */
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_PROFILEPATH "%SystemDrive%\\Belgeler ve Ayarlar"
IDS_APPDATA "Uygulama Verisi"
IDS_DESKTOP "Masaüstü"
IDS_FAVORITES "Yer İmleri"
IDS_STARTMENU "Başlat Seçkesi"
IDS_PROGRAMS "Başlat Seçkesi\\İzlenceler"
IDS_ADMINTOOLS "Başlat Seçkesi\\İzlenceler\\Yönetim Araçları"
IDS_STARTUP "Başlat Seçkesi\\İzlenceler\\Başlangıç"
IDS_MYDOCUMENTS "Belgelerim"
IDS_MYPICTURES "Belgelerim\\Resimlerim"
IDS_MYMUSIC "Belgelerim\\Mûsikilerim"
IDS_MYVIDEOS "Belgelerim\\Vidyolarım"
IDS_TEMPLATES "Kalıplar"
IDS_RECENT "En Son"
IDS_SENDTO "Gönder"
IDS_PRINTHOOD "Yazıcılar"
IDS_NETHOOD "Sunucular"
IDS_LOCALSETTINGS "Yerli Ayarlar"
IDS_LOCALAPPDATA "Yerli Ayarlar\\Uygulama Verisi"
IDS_TEMP "Yerli Ayarlar\\Geçici"
IDS_CACHE "Yerli Ayarlar\\Geçici Umûmî Ağ Kütükleri"
IDS_HISTORY "Yerli Ayarlar\\Geçmiş"
IDS_COOKIES "Tanımlama Bilgileri"
IDS_PROGRAMFILES "%SystemDrive%\\İzlence Kütükleri"
IDS_COMMONFILES "Ortak Kütükler"
END
+3
View File
@@ -114,6 +114,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#ifdef LANGUAGE_TH_TH
#include "lang/th-TH.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif
+2 -1
View File
@@ -400,7 +400,6 @@ SCROLL_HandleScrollEvent( HWND hwnd, INT nBar, UINT msg, POINT pt)
{
return;
}
ThemeInitDrawContext(&context, hwnd, 0);
#ifndef ROS_SUCKS
/* The scrollbar rect is in screen coordinates */
@@ -410,6 +409,8 @@ SCROLL_HandleScrollEvent( HWND hwnd, INT nBar, UINT msg, POINT pt)
if ((SCROLL_trackHitTest == SCROLL_NOWHERE) && (msg != WM_LBUTTONDOWN))
return;
ThemeInitDrawContext(&context, hwnd, 0);
hwndOwner = (nBar == SB_CTL) ? GetParent(hwnd) : hwnd;
hwndCtl = (nBar == SB_CTL) ? hwnd : 0;
+2 -2
View File
@@ -49,7 +49,7 @@ static DWORD dwThemeAppProperties = STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS;
ATOM atWindowTheme;
static ATOM atSubAppName;
static ATOM atSubIdList;
ATOM atWndContrext;
ATOM atWndContext;
PTHEME_FILE ActiveThemeFile;
@@ -581,7 +581,7 @@ void UXTHEME_InitSystem(HINSTANCE hInst)
atSubAppName = GlobalAddAtomW(szSubAppName);
atSubIdList = GlobalAddAtomW(szSubIdList);
atDialogThemeEnabled = GlobalAddAtomW(szDialogThemeEnabled);
atWndContrext = GlobalAddAtomW(L"ux_WndContext");
atWndContext = GlobalAddAtomW(L"ux_WndContext");
}
/***********************************************************************
+8 -8
View File
@@ -17,7 +17,7 @@ PWND_CONTEXT ThemeGetWndContext(HWND hWnd)
{
PWND_CONTEXT pcontext;
pcontext = (PWND_CONTEXT)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContrext));
pcontext = (PWND_CONTEXT)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContext));
if(pcontext == NULL)
{
pcontext = HeapAlloc(GetProcessHeap(),
@@ -28,13 +28,13 @@ PWND_CONTEXT ThemeGetWndContext(HWND hWnd)
return NULL;
}
SetPropW( hWnd, (LPCWSTR)MAKEINTATOM(atWndContrext), pcontext);
SetPropW( hWnd, (LPCWSTR)MAKEINTATOM(atWndContext), pcontext);
}
return pcontext;
}
void ThemeDetroyWndContext(HWND hWnd)
void ThemeDestroyWndContext(HWND hWnd)
{
PWND_CONTEXT pContext;
DWORD ProcessId;
@@ -46,7 +46,7 @@ void ThemeDetroyWndContext(HWND hWnd)
return;
}
pContext = (PWND_CONTEXT)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContrext));
pContext = (PWND_CONTEXT)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContext));
if(pContext == NULL)
{
return;
@@ -59,12 +59,12 @@ void ThemeDetroyWndContext(HWND hWnd)
HeapFree(GetProcessHeap(), 0, pContext);
SetPropW( hWnd, (LPCWSTR)MAKEINTATOM(atWndContrext), NULL);
SetPropW( hWnd, (LPCWSTR)MAKEINTATOM(atWndContext), NULL);
}
static BOOL CALLBACK ThemeCleanupChildWndContext (HWND hWnd, LPARAM msg)
{
ThemeDetroyWndContext(hWnd);
ThemeDestroyWndContext(hWnd);
return TRUE;
}
@@ -76,7 +76,7 @@ static BOOL CALLBACK ThemeCleanupWndContext(HWND hWnd, LPARAM msg)
}
else
{
ThemeDetroyWndContext(hWnd);
ThemeDestroyWndContext(hWnd);
EnumChildWindows (hWnd, ThemeCleanupChildWndContext, 0);
}
@@ -249,7 +249,7 @@ ThemePostWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR
}
case WM_DESTROY:
{
ThemeDetroyWndContext(hWnd);
ThemeDestroyWndContext(hWnd);
return 0;
}
}
+1 -1
View File
@@ -219,7 +219,7 @@ PWND_CONTEXT ThemeGetWndContext(HWND hWnd);
extern HINSTANCE hDllInst;
extern ATOM atWindowTheme;
extern ATOM atWndContrext;
extern ATOM atWndContext;
extern BOOL gbThemeHooksActive;
extern PTHEME_FILE ActiveThemeFile;
+39 -7
View File
@@ -1,7 +1,7 @@
/*
* Turkish Resources
*
* Copyright 2006 Fatih Aşıcı
* Copyrights: 2006 Fatih Aşıcı, 2014 Erdem Ersoy (eersoy93) ([email protected])
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,20 +22,52 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
IDD_PROXYDLG DIALOG 36, 24, 250, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ağ Parolasını Girin"
CAPTION "Ağ Şifresini Gir"
FONT 8, "MS Shell Dlg"
{
LTEXT "Lütfen kullanıcı adınızı ve parolanızı girin:", -1, 40, 6, 150, 15
LTEXT "Proxy", -1, 40, 26, 50, 10
LTEXT "Realm", -1, 40, 46, 50, 10
LTEXT "Lütfen kullanıcı adınızı ve şifrenizi giriniz:", -1, 40, 6, 150, 15
LTEXT "Vekil", -1, 40, 26, 50, 10
LTEXT "Erişim Alanı", -1, 40, 46, 50, 10
LTEXT "Kullanıcı", -1, 40, 66, 50, 10
LTEXT "Parola", -1, 40, 86, 50, 10
LTEXT "Şifre", -1, 40, 86, 50, 10
LTEXT "", IDC_PROXY, 80, 26, 150, 14, 0
LTEXT "", IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "Bu parolayı &sakla (güvensiz)", IDC_SAVEPASSWORD,
CHECKBOX "&Bu Şifreyi Sakla (Güvensiz)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Tamam", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "İptal", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
}
IDD_AUTHDLG DIALOG 36, 24, 250, 154
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Kimlik Doğrulaması Gerekli"
FONT 8, "MS Shell Dlg"
{
LTEXT "Lütfen kullanıcı adınızı ve şifrenizi giriniz:", -1, 40, 6, 150, 15
LTEXT "Sunucu", -1, 40, 26, 50, 10
LTEXT "Erişim Alanı", -1, 40, 46, 50, 10
LTEXT "Kullanıcı", -1, 40, 66, 50, 10
LTEXT "Şifre", -1, 40, 86, 50, 10
LTEXT "", IDC_SERVER, 80, 26, 150, 14, 0
LTEXT "", IDC_REALM, 80, 46, 150, 14, 0
EDITTEXT IDC_USERNAME, 80, 66, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT IDC_PASSWORD, 80, 86, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP | ES_PASSWORD
CHECKBOX "&Bu Şifreyi Sakla (Güvensiz)", IDC_SAVEPASSWORD,
80, 106, 150, 12, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Tamam", IDOK, 98, 126, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "İptal", IDCANCEL, 158, 126, 56, 14, WS_GROUP | WS_TABSTOP
}
IDD_INVCERTDLG DIALOG 3, 24, 250, 86
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Güvenlik Uyarısı"
FONT 8, "MS Shell Dlg"
{
LTEXT "Bu site için onay belgesiyle ilgili bir sorun var.", -1, 40, 6, 200, 20
LTEXT "", IDC_CERT_ERROR, 40, 26, 200, 20
LTEXT "Yine de sürdürmek istiyor musunuz?", -1, 40, 46, 200, 20
PUSHBUTTON "Evet", IDOK, 40, 66, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON
PUSHBUTTON "Hayır", IDCANCEL, 100, 66, 56, 14, WS_GROUP | WS_TABSTOP
}
+126
View File
@@ -0,0 +1,126 @@
/*
* Copyright: 2014 Erdem Ersoy (eersoy93) ([email protected])
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
STRINGTABLE LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
BEGIN
/* MMSYS errors */
MMSYSERR_NOERROR, "Belirtilen komut yürütüldü."
MMSYSERR_ERROR, "Tanımlamamış dış yanlışlık."
MMSYSERR_BADDEVICEID, "Dizgeniz için alan dışı olan bir aygır kimliği kullanıldı."
MMSYSERR_NOTENABLED, "Sürücü etkin değildi."
MMSYSERR_ALLOCATED, "Belirtilen aygıt önceden kullanımda. Boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MMSYSERR_INVALHANDLE, "Belirtilen aygıt yönetimi geçersiz."
MMSYSERR_NODRIVER, "Dizgenizde kurulu sürücü yok!\n"
MMSYSERR_NOMEM, "Bu görev için yeterli bellek yok. Kullanılabilir belleği arttırmak için bir ya da daha çok uygulamadan çıkınız, sonra yeniden deneyiniz."
MMSYSERR_NOTSUPPORTED, "Bu işlev desteklenmiyor. Sürücünün hangi işlevleri ve iletileri desteklediğini belirlemek için Yetenekler işlevini kullanınız."
MMSYSERR_BADERRNUM, "Dizgenizde tanımlanmamış bir yanlışlık numarası belirtildi."
MMSYSERR_INVALFLAG, "Bir geçersiz im bir dizge işlevine geçirilmiş."
MMSYSERR_INVALPARAM, "Bir geçersiz değişken bir dizge işlevine geçirilmiş."
/* WAVE errors */
WAVERR_BADFORMAT, "Belirtilen biçim desteklenmiyor ya da çevrilemiyor. Desteklenen biçimleri belirlemek için Yetenekler işlevini kullanınız."
WAVERR_STILLPLAYING, "Ortam verisi yürütülürken bu işlem yürütülemez. Aygıtı sıfırlayınız ya da verinin yürütülmesi bitene dek bekleyiniz."
WAVERR_UNPREPARED, "Dalga başlığı anıklanmamış. Başlığı anıklamak için Anıkla işlevini kullanınız, sonra yeniden deneyiniz."
WAVERR_SYNC, "WAVE_ALLOWSYNC imi kullanmadan bu aygıt açılamıyor. İmi kullanınız, sonra yeniden deneyiniz."
/* MIDI errors */
MIDIERR_UNPREPARED, "MIDI başlığı anıklanmamış. Başlığı anıklamak için Anıkla işlevini kullanınız, sonra yeniden deneyiniz."
MIDIERR_STILLPLAYING, "Ortam verisi yürütülürken bu işlem yürütülemez. Aygıtı sıfırlayınız ya da verinin yürütülmesi bitene dek bekleyiniz."
MIDIERR_NOMAP, "Bir MIDI haritası bulunamadı. Sürücüyle ilgili bir sorun olabilir ya da MIDIMAP.CFG kütüğü bozuk ya da eksik olabilir."
MIDIERR_NOTREADY, "Giriş, aygıta veri gönderiyor. Veri gönderilene dek bekleyiniz, sonra yenide deneyiniz."
MIDIERR_NODEVICE, "Şimdiki MIDI Haritalayıcısı kurulumu dizgenizde kurulmamış bir MIDI aygıtını belirtiyor. Kurulumu düzenlemek için MIDI Haritalayıcısı'nı kullanınız."
MIDIERR_INVALIDSETUP, "Şimdiki MIDI kurulumu bozulmuş. Özgün MIDIMAP.CFG kütüğünü ReactOS'un SYSTEM dizinine çoğaltınız, sonra yeniden deneyiniz."
/* MCI errors */
MCIERR_INVALID_DEVICE_ID, "Geçersiz MCI aygıtı kimliği. MCI aygıtı açıldığında döndürülen kimliği kullanınız."
MCIERR_UNRECOGNIZED_KEYWORD, "Bu sürücü belirtilen komut değişkenini tanıyamıyor."
MCIERR_UNRECOGNIZED_COMMAND, "Bu sürücü belirtilen komutu tanıyamıyor."
MCIERR_HARDWARE, "Ortam aygıtınzla ilgili bir sorun var. Doğru çalıştığından emin olunuz ya da aygıt üreticisiyle iletişime geçiniz."
MCIERR_INVALID_DEVICE_NAME, "Belirtilen aygıt açık değil ya da MCI eliyle tanınmadı."
MCIERR_OUT_OF_MEMORY, "Bu görev için yeterli bellek yok.\nKullanılabilir belleği arttırmak için bir ya da daha çok uygulamadan çıkınız, sonra yeniden deneyiniz."
MCIERR_DEVICE_OPEN, "Aygıt adı bu uygulama eliyle bir başka ad olarak önceden kullanılıyor. Eşsiz bir başka ad kullanınız."
MCIERR_CANNOT_LOAD_DRIVER, "Belirtilen aygıt sürücüsünün yüklenmesinde saptanamayan bir sorun var."
MCIERR_MISSING_COMMAND_STRING, "Komut belirtilmedi."
MCIERR_PARAM_OVERFLOW, "Çıkış dizgisi, dönüş ara belleğine sığması için çok büyük. Ara belleğin büyüklüğünü arttırınız."
MCIERR_MISSING_STRING_ARGUMENT, "Belirtilen komut bir damga dizgisi değişkeni gerektiriyor. Lütfen bir tâne giriniz."
MCIERR_BAD_INTEGER, "Belirtilen tam sayı bu komut için geçersiz."
MCIERR_PARSER_INTERNAL, "Aygıt sürücüsü geçersiz bir dönüş türü döndürdü. Yeni bir sürücü elde etme üzerine aygıt üreticisine danışınız."
MCIERR_DRIVER_INTERNAL, "Aygıt sürücüsüyle ilgili bir sorun var. Yeni bir sürücü elde etme üzerine aygıt üreticisine danışınız."
MCIERR_MISSING_PARAMETER, "Belirtilen komut bir değişken gerektiriyor. Lütfen bir tâne giriniz."
MCIERR_UNSUPPORTED_FUNCTION, "Kullandığınız MCI aygıtı belirtilen komutu desteklemiyor."
MCIERR_FILE_NOT_FOUND, "Belirtilen kütük bulunamıyor. Yolun ve kütük adının doğru olduğundan emin olunuz."
MCIERR_DEVICE_NOT_READY, "Aygıt sürücüsü anık değil."
MCIERR_INTERNAL, "MCI'yı başlatmada bir sorun oluştu. ReactOS'u yeniden başlatmayı deneyiniz."
MCIERR_DRIVER, "Aygıt sürücüsüyle ilgili bir sorun var. Sürücü kapatıldı. Erişilemiyor yanlışlığı."
MCIERR_CANNOT_USE_ALL, "Belirtilen komutla aygıt adı olarak ""all"" kullanılamıyor."
MCIERR_MULTIPLE, "Birden çok aygıtta yanlışlıklar oluştu. Hangi aygıtların yanlışlığa neden olduğunu belirlemek için tüm komutları ve tüm aygıtları ayrı ayrı belirtiniz."
MCIERR_EXTENSION_NOT_FOUND, "Verilen kütük adı uzantısından aygıt türü belirlenemiyor."
MCIERR_OUTOFRANGE, "Belirtilen değişken belirtilen komut için alan dışında."
MCIERR_FLAGS_NOT_COMPATIBLE, "Belirtilen değişkenler birlikte kullanılamıyor."
MCIERR_FILE_NOT_SAVED, "Belirtilen kütük saklanamıyor. Yeterli disk boşluğunuz olduğundan veyâ ağa bağlı olduğunuzdan emin olunuz."
MCIERR_DEVICE_TYPE_REQUIRED, "Beirtilen aygıt bulunamıyor. Kurulduğundan veyâ aygıt adının doğru belirtildiğinden emin olunuz."
MCIERR_DEVICE_LOCKED, "Belirtilen aygıt şimdi kapatılıyor. Birkaç sâniye bekleyiniz, sonra yeniden deneyiniz."
MCIERR_DUPLICATE_ALIAS, "Belirtilen başka ad bu uygulamada önceden kullanılıyor. Eşsiz bir başka ad kullanınız."
MCIERR_BAD_CONSTANT, "Belirtilen değişken bu komut için geçersiz."
MCIERR_MUST_USE_SHAREABLE, "Aygıt sürücüsü önceden kullanımda. Onu paylaşmak için her ""open"" komutuyla ""shareable"" değişkenini kullanınız."
MCIERR_MISSING_DEVICE_NAME, "Belirtilen komut bir başka ad, bir kütük, bir sürücü ya da bir aygıt adı gerektirir. Lütfen bir tâne giriniz."
MCIERR_BAD_TIME_FORMAT, "Zaman biçimi için belirtilen değer geçersiz. Geçerli biçimler için MCI belgelerine bakınız."
MCIERR_NO_CLOSING_QUOTE, "Değişken değerinde bir kapatan çift tırnak imi eksik. Lütfen bir tâne giriniz."
MCIERR_DUPLICATE_FLAGS, "Bir değişken ya da bir değer iki kez belirtilmiş. Onu yalnızca bir kez belirtiniz."
MCIERR_INVALID_FILE, "Belirtilen kütük belirtilen MCI aygıtında yürütülemiyor. Kütük, bozuk olabilir ya da doğru biçimde değildir."
MCIERR_NULL_PARAMETER_BLOCK, "MCI'ya bir boş değişken kalıbı geçirildi."
MCIERR_UNNAMED_RESOURCE, "Adsız bir kütük saklanamaz. Bir kütük adı giriniz."
MCIERR_NEW_REQUIRES_ALIAS, """new"" değişkenini kullanırken bir başka ad belirtmelisiniz."
MCIERR_NOTIFY_ON_AUTO_OPEN, "Kendiliğinden açık aygıtlarla ""notify"" imi kullanılamıyor."
MCIERR_NO_ELEMENT_ALLOWED, "Belirtilen aygıtla bir kütük adı kullanılamıyor."
MCIERR_NONAPPLICABLE_FUNCTION, "Belirtilen dizideki komutlar yürütülemiyor. Komut dizisini düzeltiniz, sonra yeniden deneyiniz."
MCIERR_ILLEGAL_FOR_AUTO_OPEN, "Bir kendiliğinden açık aygıt üzerinde belirtilen komut yürütülemiyor. Aygıt kapalı olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_FILENAME_REQUIRED, "Kütük adı geçersiz. Kütük adının 8 damgadan daha uzun olmadığından, bir nokta ve bir uzantıyla izlendiğinden emin olunuz."
MCIERR_EXTRA_CHARACTERS, "Tırnak imleriyle kapatılan bir dizgiden sonra ek damgalar belirtilemez."
MCIERR_DEVICE_NOT_INSTALLED, "Belirtilen aygıt dizgede kurulmamış. Aygıtı kurmak için Denetim Masası'nda Sürücüler seçeneğini kullanınız."
MCIERR_GET_CD, "Belirtilen kütüğe ya da MCI aygıtına erişilemiyor. Dizinleri değiştirmeyi deneyiniz ya da bilgisayarınızı yenide başlatınız."
MCIERR_SET_CD, "Uygulama, dizinleri değiştirememesinden dolayı belirtilen kütüğe ya da MCI aygıtına erişilemiyor."
MCIERR_SET_DRIVE, "Uygulama, sürücüleri değiştirememesinden dolayı belirtilen kütüğe ya da MCI aygıtına erişilemiyor."
MCIERR_DEVICE_LENGTH, "79 damgadan daha az bir aygıt ya da sürücü adı belirtiniz."
MCIERR_DEVICE_ORD_LENGTH, "69 damgadan daha az bir aygıt ya da sürücü adı belirtiniz."
MCIERR_NO_INTEGER, "Belirtilen komut bir tam sayı değişken gerektiriyor. Lütfen bir tâne giriniz."
MCIERR_WAVE_OUTPUTSINUSE, "Şimdiki biçimdeki kütükleri oynatabilen tüm dalga aygıtları kullanımda. Bir dalga aygıtı boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_WAVE_SETOUTPUTINUSE, "Kullanımda olduğundan dolayı yeniden çalma için şimdiki dalga aygıtı ayarlanamıyor. Aygıt boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_WAVE_INPUTSINUSE, "Şimdiki biçimde kütükler saklayabilen tüm dalga aygıtları kullanımda. Bir dalga aygıtı boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_WAVE_SETINPUTINUSE, "Kullanımda olduğundan dolayı saklama için şimdiki dalga aygıtı ayarlanamıyor. Aygıt boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_WAVE_OUTPUTUNSPECIFIED, "Bir uyumlu dalga biçimi yeniden çalma aygıtı kullanılabilir."
MCIERR_WAVE_INPUTUNSPECIFIED, "Bir uyumlu dalga biçimi saklama aygıtı kullanılabilir."
MCIERR_WAVE_OUTPUTSUNSUITABLE, "Şimdiki biçimde kütükler çalabilen kurulu dalga aygıtı yok. Dalga aygıtını kurmak için Sürücüler seçeneğini kullanınız."
MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Çalmaya çalıştığınız aygıt şimdiki kütük biçimini tanıyamıyor."
MCIERR_WAVE_INPUTSUNSUITABLE, "Şimdiki biçimde kütükler saklayabilen kurulu dalga aygıtı yok. Dalga aygıtını kurmak için Sürücüler seçeneğini kullanınız."
MCIERR_WAVE_SETINPUTUNSUITABLE, "Saklamaya çalıştığınız aygıt şimdiki kütük biçimini tanıyamıyor."
MCIERR_NO_WINDOW, "Görüntü penceresi yok."
MCIERR_CREATEWINDOW, "Pencere oluşturulamadı ya da kullanılamadı."
MCIERR_FILE_READ, "Belirtilen kütük okunamıyor. Kütüğün şimdi bile var olduğundan emin olunuz ya da diskinizi ya da ağ bağlantınızı denetleyiniz."
MCIERR_FILE_WRITE, "Belirtilen kütüğe yazılamıyor. Yeterli disk boşluğunuz olduğundan ya da şimdi bile ağa bağlı olduğunuzdan emin olunuz."
MCIERR_SEQ_DIV_INCOMPATIBLE, """song pointer"" ve SMPTE zaman biçimleri karşılıklı olarak husûsîdir. Onları birlikte kullanamazsınız."
MCIERR_SEQ_NOMIDIPRESENT, "Dizgenin kurulu MIDI aygıtları yok. Bir MIDI sürücüsü kurmak için Denetim Masası'ndan Sürücüler seçeneğini kullanınız."
MCIERR_SEQ_PORT_INUSE, "Belirtilen MIDI girişi önceden kullanımda. Boş olana dek bekleyiniz, sonra yeniden deneyiniz."
MCIERR_SEQ_PORT_MAPNODEVICE, "Şimdiki MIDI Haritalayıcısı kurulumu dizgede kurulmamış bir MIDI aygıtı belirtiyor. Kurulumu düzenlemek için Denetim Masası'ndan MIDI Haritalayıcısı seçeneğini kullanınız."
MCIERR_SEQ_PORT_MISCERROR, "Belirtilen girişle ilgili bir yanlışlık oluştu."
MCIERR_SEQ_PORT_NONEXISTENT, "Belirtilen MIDI aygıtı dizgede kurulmamış. Bir MIDI aygıtı kurmak için Denetim Masası'ndan Sürücüler seçeneğini kullanınız."
MCIERR_SEQ_PORTUNSPECIFIED, "Dizge, belirtilen bir şimdiki MIDI girişine iye değil."
MCIERR_SEQ_TIMER, "Tüm çoklu ortam zamanlayıcıları başka uygulamalar eliyle kullanılıyor. Bu uygulamaların birinden çıkınız, sonra yeniden deneyiniz."
END
+3
View File
@@ -78,6 +78,9 @@
#ifdef LANGUAGE_SQ_AL
#include "lang/winmm_Sq.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/winmm_Tr.rc"
#endif
//#include "winmm_Hu.rc"
#ifdef LANGUAGE_UK_UA
#include "lang/winmm_Uk.rc"
+1
View File
@@ -7,6 +7,7 @@ list(APPEND SOURCE
gdb_send.c
kdcom.c
kdpacket.c
utils.c
kdgdb.h)
# TODO: AMD64, ARM...
+226 -67
View File
@@ -8,14 +8,19 @@
#include "kdgdb.h"
/* LOCALS *********************************************************************/
static HANDLE gdb_run_thread;
static HANDLE gdb_dbg_process;
HANDLE gdb_dbg_thread;
static ULONG_PTR gdb_run_tid;
/* Keep track of where we are for qfThreadInfo/qsThreadInfo */
static LIST_ENTRY* CurrentProcessEntry;
static LIST_ENTRY* CurrentThreadEntry;
/* GLOBALS ********************************************************************/
UINT_PTR gdb_dbg_pid;
UINT_PTR gdb_dbg_tid;
/* PRIVATE FUNCTIONS **********************************************************/
static
HANDLE
hex_to_thread(char* buffer)
UINT_PTR
hex_to_tid(char* buffer)
{
ULONG_PTR ret = 0;
char hex;
@@ -23,12 +28,13 @@ hex_to_thread(char* buffer)
{
hex = hex_value(*buffer++);
if (hex < 0)
return (HANDLE)ret;
return ret;
ret <<= 4;
ret += hex;
}
return (HANDLE)ret;
return ret;
}
#define hex_to_pid hex_to_tid
static
ULONG64
@@ -56,25 +62,26 @@ handle_gdb_set_thread(void)
{
case 'c':
if (strcmp(&gdb_input[2], "-1") == 0)
gdb_run_thread = (HANDLE)-1;
gdb_run_tid = (ULONG_PTR)-1;
else
gdb_run_thread = hex_to_thread(&gdb_input[2]);
gdb_run_tid = hex_to_tid(&gdb_input[2]);
send_gdb_packet("OK");
break;
case 'g':
KDDBGPRINT("Setting debug thread: %s.\n", gdb_input);
if (strncmp(&gdb_input[2], "p-1", 3) == 0)
{
gdb_dbg_process = (HANDLE)-1;
gdb_dbg_thread = (HANDLE)-1;
gdb_dbg_pid = (UINT_PTR)-1;
gdb_dbg_tid = (UINT_PTR)-1;
}
else
{
char* ptr = strstr(gdb_input, ".") + 1;
gdb_dbg_process = hex_to_thread(&gdb_input[3]);
gdb_dbg_pid = hex_to_pid(&gdb_input[3]);
if (strncmp(ptr, "-1", 2) == 0)
gdb_dbg_thread = (HANDLE)-1;
gdb_dbg_tid = (UINT_PTR)-1;
else
gdb_dbg_thread = hex_to_thread(ptr);
gdb_dbg_tid = hex_to_tid(ptr);
}
send_gdb_packet("OK");
break;
@@ -84,75 +91,165 @@ handle_gdb_set_thread(void)
}
}
KDSTATUS
gdb_receive_and_interpret_packet(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
KDSTATUS Status = gdb_receive_packet(KdContext);
if (Status != KdPacketReceived)
return Status;
return gdb_interpret_input(State, MessageData, MessageLength, KdContext);
}
static
void
handle_gdb_thread_alive(void)
{
char* ptr = strstr(gdb_input, ".") + 1;
CLIENT_ID ClientId;
ULONG_PTR Pid, Tid;
PETHREAD Thread;
NTSTATUS Status;
ClientId.UniqueProcess = hex_to_thread(&gdb_input[2]);
ClientId.UniqueThread = hex_to_thread(ptr);
Pid = hex_to_pid(&gdb_input[2]);
Tid = hex_to_tid(strstr(gdb_input, ".") + 1);
Status = PsLookupProcessThreadByCid(&ClientId, NULL, &Thread);
/* We cannot use PsLookupProcessThreadByCid as we could be running at any IRQL.
* So loop. */
KDDBGPRINT("Checking if p%p.%p is alive.\n", Pid, Tid);
if (!NT_SUCCESS(Status))
{
/* Thread doesn't exist */
Thread = find_thread(Pid, Tid);
if (Thread != NULL)
send_gdb_packet("OK");
else
send_gdb_packet("E03");
return;
}
/* It's OK */
ObDereferenceObject(Thread);
send_gdb_packet("OK");
}
/* q* packets */
static
void
handle_gdb_query(void)
KDSTATUS
handle_gdb_query(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
if (strncmp(gdb_input, "qSupported:", 11) == 0)
{
send_gdb_packet("PacketSize=4096;multiprocess+;");
return;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
if (strncmp(gdb_input, "qAttached", 9) == 0)
{
/* Say yes: the remote server didn't create the process, ReactOS did! */
/* Say no: We didn't attach, we create the process! */
send_gdb_packet("0");
return;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
if (strncmp(gdb_input, "qRcmd,", 6) == 0)
{
send_gdb_packet("OK");
return;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
if (strcmp(gdb_input, "qC") == 0)
{
char gdb_out[64];
sprintf(gdb_out, "QC:p%p.%p;",
PsGetThreadProcessId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread),
PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread));
sprintf(gdb_out, "QC:p%"PRIxPTR".%"PRIxPTR";",
handle_to_gdb_pid(PsGetThreadProcessId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread)),
handle_to_gdb_tid(PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread)));
send_gdb_packet(gdb_out);
return;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
if (strncmp(gdb_input, "qTStatus", 8) == 0)
if ((strncmp(gdb_input, "qfThreadInfo", 12) == 0)
|| (strncmp(gdb_input, "qsThreadInfo", 12) == 0))
{
/* We don't support tracepoints. */
send_gdb_packet("T0");
return;
BOOLEAN FirstThread = TRUE;
PEPROCESS Process;
PETHREAD Thread;
char gdb_out[1024];
char* ptr = gdb_out;
BOOLEAN Resuming = strncmp(gdb_input, "qsThreadInfo", 12) == 0;
if (Resuming)
{
if (CurrentProcessEntry == (LIST_ENTRY*)1)
{
/* We're done */
send_gdb_packet("l");
CurrentProcessEntry = NULL;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
if (CurrentThreadEntry == NULL)
CurrentProcessEntry = CurrentProcessEntry->Flink;
}
else
CurrentProcessEntry = ProcessListHead->Flink;
if ((CurrentProcessEntry == ProcessListHead) ||
(CurrentProcessEntry == NULL)) /* Ps is not initialized */
{
/* We're almost done. Tell GDB about the idle thread */
send_gdb_packet("mp1.1");
CurrentProcessEntry = (LIST_ENTRY*)1;
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
Process = CONTAINING_RECORD(CurrentProcessEntry, EPROCESS, ActiveProcessLinks);
if (Resuming && CurrentThreadEntry != NULL)
CurrentThreadEntry = CurrentThreadEntry->Flink;
else
CurrentThreadEntry = Process->ThreadListHead.Flink;
ptr = gdb_out;
*ptr++ = 'm';
/* List threads from this process */
for ( ;
CurrentThreadEntry != &Process->ThreadListHead;
CurrentThreadEntry = CurrentThreadEntry->Flink)
{
Thread = CONTAINING_RECORD(CurrentThreadEntry, ETHREAD, ThreadListEntry);
/* See if we should add a comma */
if (FirstThread)
{
FirstThread = FALSE;
}
else
{
*ptr++ = ',';
}
ptr += _snprintf(ptr, 1024 - (ptr - gdb_out),
"p%p.%p",
handle_to_gdb_pid(Process->UniqueProcessId),
handle_to_gdb_tid(Thread->Cid.UniqueThread));
if (ptr > (gdb_out + 1024))
{
/* send what we got */
send_gdb_packet(gdb_out);
/* GDB can ask anything at this point, it isn't necessarily a qsThreadInfo packet */
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
}
/* send the list for this process */
send_gdb_packet(gdb_out);
CurrentThreadEntry = NULL;
/* GDB can ask anything at this point, it isn't necessarily a qsThreadInfo packet */
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
KDDBGPRINT("KDGDB: Unknown query: %s\n", gdb_input);
send_gdb_packet("");
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
#if 0
@@ -179,12 +276,49 @@ handle_gdb_registers(
}
#endif
static
void
ReadMemorySendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData)
{
DBGKD_MANIPULATE_STATE64* State = (DBGKD_MANIPULATE_STATE64*)MessageHeader->Buffer;
if (PacketType != PACKET_TYPE_KD_STATE_MANIPULATE)
{
// KdAssert
KDDBGPRINT("Wrong packet type (%lu) received after DbgKdReadVirtualMemoryApi request.\n", PacketType);
while (1);
}
if (State->ApiNumber != DbgKdReadVirtualMemoryApi)
{
KDDBGPRINT("Wrong API number (%lu) after DbgKdReadVirtualMemoryApi request.\n", State->ApiNumber);
}
/* Check status */
if (!NT_SUCCESS(State->ReturnStatus))
send_gdb_ntstatus(State->ReturnStatus);
else
send_gdb_memory(MessageData->Buffer, MessageData->Length);
KdpSendPacketHandler = NULL;
KdpManipulateStateHandler = NULL;
/* Reset the TLB */
if ((gdb_dbg_pid != 0) && gdb_pid_to_handle(gdb_dbg_pid) != PsGetCurrentProcessId())
{
__writecr3(PsGetCurrentProcess()->Pcb.DirectoryTableBase[0]);
}
}
static
KDSTATUS
handle_gdb_read_mem(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength)
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
State->ApiNumber = DbgKdReadVirtualMemoryApi;
State->ReturnStatus = STATUS_SUCCESS; /* ? */
@@ -194,8 +328,25 @@ handle_gdb_read_mem(
MessageData->Length = 0;
*MessageLength = 0;
/* Set the TLB according to the process being read. Pid 0 means any process. */
if ((gdb_dbg_pid != 0) && gdb_pid_to_handle(gdb_dbg_pid) != PsGetCurrentProcessId())
{
PEPROCESS AttachedProcess = find_process(gdb_dbg_pid);
if (AttachedProcess == NULL)
{
KDDBGPRINT("The current GDB debug thread is invalid!");
send_gdb_packet("E03");
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
__writecr3(AttachedProcess->Pcb.DirectoryTableBase[0]);
}
State->u.ReadMemory.TargetBaseAddress = hex_to_address(&gdb_input[1]);
State->u.ReadMemory.TransferCount = hex_to_address(strstr(&gdb_input[1], ",") + 1);
/* KD will reply with KdSendPacket. Catch it */
KdpSendPacketHandler = ReadMemorySendHandler;
return KdPacketReceived;
}
@@ -222,21 +373,34 @@ handle_gdb_v(
if (strcmp(gdb_input, "vCont;c") == 0)
{
/* Let's go on */
State->ApiNumber = DbgKdContinueApi;
State->ReturnStatus = STATUS_SUCCESS; /* ? */
State->Processor = CurrentStateChange.Processor;
State->ProcessorLevel = CurrentStateChange.ProcessorLevel;
if (MessageData)
MessageData->Length = 0;
*MessageLength = 0;
State->u.Continue.ContinueStatus = STATUS_SUCCESS;
/* Tell GDB we are fine */
DBGKM_EXCEPTION64* Exception = NULL;
/* Tell GDB everything is fine, we will handle it */
send_gdb_packet("OK");
return KdPacketReceived;
if (CurrentStateChange.NewState == DbgKdExceptionStateChange)
Exception = &CurrentStateChange.u.Exception;
/* See if we should update the program counter (unlike windbg, gdb doesn't do it for us) */
if (Exception && (Exception->ExceptionRecord.ExceptionCode == STATUS_BREAKPOINT)
&& (Exception->ExceptionRecord.ExceptionInformation[0] == 0))
{
ULONG_PTR ProgramCounter;
/* So we must get past the breakpoint instruction */
ProgramCounter = KdpGetContextPc(&CurrentContext);
KdpSetContextPc(&CurrentContext, ProgramCounter + KD_BREAKPOINT_SIZE);
SetContextManipulateHandler(State, MessageData, MessageLength, KdContext);
KdpManipulateStateHandler = ContinueManipulateStateHandler;
return KdPacketReceived;
}
return ContinueManipulateStateHandler(State, MessageData, MessageLength, KdContext);
}
}
KDDBGPRINT("Unhandled 'v' packet: %s\n", gdb_input);
return KdPacketReceived;
}
@@ -248,7 +412,6 @@ gdb_interpret_input(
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
KDSTATUS Status;
switch (gdb_input[0])
{
case '?':
@@ -256,16 +419,16 @@ gdb_interpret_input(
gdb_send_exception();
break;
case 'g':
gdb_send_registers();
break;
return gdb_send_registers(State, MessageData, MessageLength, KdContext);
case 'H':
handle_gdb_set_thread();
break;
case 'm':
return handle_gdb_read_mem(State, MessageData, MessageLength);
return handle_gdb_read_mem(State, MessageData, MessageLength, KdContext);
case 'p':
return gdb_send_register(State, MessageData, MessageLength, KdContext);
case 'q':
handle_gdb_query();
break;
return handle_gdb_query(State, MessageData, MessageLength, KdContext);
case 'T':
handle_gdb_thread_alive();
break;
@@ -274,12 +437,8 @@ gdb_interpret_input(
default:
/* We don't know how to handle this request. Maybe this is something for KD */
State->ReturnStatus = STATUS_NOT_SUPPORTED;
KDDBGPRINT("Unsupported GDB command: %s.\n", gdb_input);
return KdPacketReceived;
}
/* Get the answer from GDB */
Status = gdb_receive_packet(KdContext);
if (Status != KdPacketReceived)
return Status;
/* Try interpreting this new packet */
return gdb_interpret_input(State, MessageData, MessageLength, KdContext);
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
+20 -39
View File
@@ -168,53 +168,34 @@ gdb_send_exception(void)
{
char gdb_out[1024];
char* ptr = gdb_out;
DBGKM_EXCEPTION64* Exception = NULL;
if (CurrentStateChange.NewState == DbgKdExceptionStateChange)
Exception = &CurrentStateChange.u.Exception;
PETHREAD Thread = (PETHREAD)(ULONG_PTR)CurrentStateChange.Thread;
/* Report to GDB */
*ptr++ = 'T';
if (Exception)
ptr = exception_code_to_gdb(Exception->ExceptionRecord.ExceptionCode, ptr);
if (CurrentStateChange.NewState == DbgKdExceptionStateChange)
{
EXCEPTION_RECORD64* ExceptionRecord = &CurrentStateChange.u.Exception.ExceptionRecord;
ptr = exception_code_to_gdb(ExceptionRecord->ExceptionCode, ptr);
}
else
ptr += sprintf(ptr, "05");
ptr += sprintf(ptr, "thread:p%p.%p;",
PsGetThreadProcessId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread),
PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread));
ptr += sprintf(ptr, "thread:p%" PRIxPTR ".%" PRIxPTR ";",
handle_to_gdb_pid(PsGetThreadProcessId(Thread)),
handle_to_gdb_tid(PsGetThreadId(Thread)));
ptr += sprintf(ptr, "core:%x;", CurrentStateChange.Processor);
send_gdb_packet(gdb_out);
}
#ifdef KDDEBUG
ULONG KdpDbgPrint(const char* Format, ...)
void
send_gdb_ntstatus(
_In_ NTSTATUS Status)
{
va_list ap;
CHAR Buffer[512];
struct _STRING Str;
int Length;
va_start(ap, Format);
Length = _vsnprintf(Buffer, sizeof(Buffer), Format, ap);
va_end(ap);
/* Check if we went past the buffer */
if (Length == -1)
{
/* Terminate it if we went over-board */
Buffer[sizeof(Buffer) - 1] = '\n';
/* Put maximum */
Length = sizeof(Buffer);
}
Str.Buffer = Buffer;
Str.Length = Length;
Str.MaximumLength = sizeof(Buffer);
gdb_send_debug_io(&Str);
return 0;
/* Just build a EXX packet and send it */
char gdb_out[4];
gdb_out[0] = 'E';
exception_code_to_gdb(Status, &gdb_out[1]);
gdb_out[3] = '\0';
send_gdb_packet(gdb_out);
}
#endif
+174 -11
View File
@@ -79,21 +79,184 @@ ctx_to_reg(CONTEXT* ctx, enum reg_name name, unsigned short* size)
return 0;
}
void
gdb_send_registers(void)
static
void*
thread_to_reg(PETHREAD Thread, enum reg_name reg_name, unsigned short* size)
{
CONTEXT* ctx;
PKPRCB* ProcessorBlockLists;
ULONG32 Registers[16];
/* See if the guy got a stack */
if (Thread->Tcb.InitialStack == NULL)
{
static const void* NullValue = NULL;
/* Terminated thread ? */
switch (reg_name)
{
case ESP:
case EBP:
case EIP:
*size = 4;
return &NullValue;
default:
return NULL;
}
}
else if (Thread->Tcb.TrapFrame)
{
PKTRAP_FRAME TrapFrame = Thread->Tcb.TrapFrame;
*size = 4;
switch (reg_name)
{
case EAX: return &TrapFrame->Eax;
case ECX: return &TrapFrame->Ecx;
case EDX: return &TrapFrame->Edx;
case EBX: return &TrapFrame->Ebx;
case ESP: return (TrapFrame->PreviousPreviousMode == KernelMode) ?
&TrapFrame->TempEsp : &TrapFrame->HardwareEsp;
case EBP: return &TrapFrame->Ebp;
case ESI: return &TrapFrame->Esi;
case EDI: return &TrapFrame->Edi;
case EIP: return &TrapFrame->Eip;
case EFLAGS: return &TrapFrame->EFlags;
case CS: return &TrapFrame->SegCs;
case SS: return &TrapFrame->HardwareSegSs;
case DS: return &TrapFrame->SegDs;
case ES: return &TrapFrame->SegEs;
case FS: return &TrapFrame->SegFs;
case GS: return &TrapFrame->SegGs;
default:
KDDBGPRINT("Unhandled regname: %d.\n", reg_name);
}
}
else
{
/* The thread was not yet scheduled */
*size = 4;
switch(reg_name)
{
case ESP: return &Thread->Tcb.KernelStack;
case EBP: return &((ULONG*)Thread->Tcb.KernelStack)[4];
case EIP: return &Thread->StartAddress;
default:
return NULL;
}
}
return NULL;
}
KDSTATUS
gdb_send_registers(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
CHAR Registers[16*8 + 1];
UCHAR* RegisterPtr;
unsigned i;
unsigned short size;
CHAR* ptr = Registers;
ProcessorBlockLists = (PKPRCB*)KdDebuggerDataBlock->KiProcessorBlock.Pointer;
ctx = (CONTEXT*)((char*)ProcessorBlockLists[CurrentStateChange.Processor] + KdDebuggerDataBlock->OffsetPrcbProcStateContext);
for(i=0; i < 16; i++)
KDDBGPRINT("Sending registers of thread %" PRIxPTR ".\n", gdb_dbg_tid);
KDDBGPRINT("Current thread_id: %p.\n", PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread));
if (((gdb_dbg_pid == 0) && (gdb_dbg_tid == 0)) ||
gdb_tid_to_handle(gdb_dbg_tid) == PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread))
{
Registers[i] = *(ULONG32*)ctx_to_reg(ctx, i, &size);
for(i=0; i < 16; i++)
{
RegisterPtr = ctx_to_reg(&CurrentContext, i, &size);
*ptr++ = hex_chars[RegisterPtr[0] >> 4];
*ptr++ = hex_chars[RegisterPtr[0] & 0xF];
*ptr++ = hex_chars[RegisterPtr[1] >> 4];
*ptr++ = hex_chars[RegisterPtr[1] & 0xF];
*ptr++ = hex_chars[RegisterPtr[2] >> 4];
*ptr++ = hex_chars[RegisterPtr[2] & 0xF];
*ptr++ = hex_chars[RegisterPtr[3] >> 4];
*ptr++ = hex_chars[RegisterPtr[3] & 0xF];
}
}
send_gdb_memory(Registers, sizeof(Registers));
else
{
PETHREAD DbgThread;
DbgThread = find_thread(gdb_dbg_pid, gdb_dbg_tid);
if (DbgThread == NULL)
{
/* Thread is dead */
send_gdb_packet("E03");
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
for(i=0; i < 16; i++)
{
RegisterPtr = thread_to_reg(DbgThread, i, &size);
if (RegisterPtr)
{
*ptr++ = hex_chars[RegisterPtr[0] >> 4];
*ptr++ = hex_chars[RegisterPtr[0] & 0xF];
*ptr++ = hex_chars[RegisterPtr[1] >> 4];
*ptr++ = hex_chars[RegisterPtr[1] & 0xF];
*ptr++ = hex_chars[RegisterPtr[2] >> 4];
*ptr++ = hex_chars[RegisterPtr[2] & 0xF];
*ptr++ = hex_chars[RegisterPtr[3] >> 4];
*ptr++ = hex_chars[RegisterPtr[3] & 0xF];
}
else
{
ptr += sprintf(ptr, "xxxxxxxx");
}
}
}
*ptr = '\0';
send_gdb_packet(Registers);
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
KDSTATUS
gdb_send_register(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
enum reg_name reg_name;
void *ptr;
unsigned short size;
/* Get the GDB register name (gdb_input = "pXX") */
reg_name = (hex_value(gdb_input[1]) << 4) | hex_value(gdb_input[2]);
if (((gdb_dbg_pid == 0) && (gdb_dbg_tid == 0)) ||
gdb_tid_to_handle(gdb_dbg_tid) == PsGetThreadId((PETHREAD)(ULONG_PTR)CurrentStateChange.Thread))
{
/* We can get it from the context of the current exception */
ptr = ctx_to_reg(&CurrentContext, reg_name, &size);
}
else
{
PETHREAD DbgThread;
DbgThread = find_thread(gdb_dbg_pid, gdb_dbg_tid);
if (DbgThread == NULL)
{
/* Thread is dead */
send_gdb_packet("E03");
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
ptr = thread_to_reg(DbgThread, reg_name, &size);
}
if (!ptr)
{
/* Undefined. Let's assume 32 bit register */
send_gdb_packet("xxxxxxxx");
}
else
{
send_gdb_memory(ptr, size);
}
return gdb_receive_and_interpret_packet(State, MessageData, MessageLength, KdContext);
}
+46 -9
View File
@@ -34,8 +34,11 @@ const ULONG BaseArray[] = {0, 0xF1012000};
/* GLOBALS ********************************************************************/
CPPORT KdComPort;
ULONG KdComPortIrq = 0; // Not used at the moment.
#ifdef KDDEBUG
CPPORT KdDebugComPort;
ULONG KdDebugComPortIrq = 0; // Not used at the moment.
#endif
/* FUNCTIONS ******************************************************************/
@@ -77,7 +80,7 @@ KdpPortInitialize(IN ULONG ComPortNumber,
{
NTSTATUS Status;
Status = CpInitialize(&KdDebugComPort,
Status = CpInitialize(&KdComPort,
UlongToPtr(BaseArray[ComPortNumber]),
ComPortBaudRate);
if (!NT_SUCCESS(Status))
@@ -86,7 +89,7 @@ KdpPortInitialize(IN ULONG ComPortNumber,
}
else
{
KdComPortInUse = KdDebugComPort.Address;
KdComPortInUse = KdComPort.Address;
return STATUS_SUCCESS;
}
}
@@ -107,10 +110,9 @@ KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
PCHAR CommandLine, PortString, BaudString, IrqString;
ULONG Value;
/* Check if e have a LoaderBlock */
/* Check if we have a LoaderBlock */
if (LoaderBlock)
{
/* Get the Command Line */
CommandLine = LoaderBlock->LoadOptions;
@@ -182,11 +184,16 @@ KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
{
/* Read and set it */
Value = atol(IrqString + 1);
if (Value) KdDebugComPortIrq = Value;
if (Value) KdComPortIrq = Value;
}
}
}
#ifdef KDDEBUG
/* Use DEBUGPORT=COM1 if you want to debug KDGDB, as we use COM2 for debugging it */
CpInitialize(&KdDebugComPort, UlongToPtr(BaseArray[2]), DEFAULT_BAUD_RATE);
#endif
/* Initialize the port */
return KdpPortInitialize(ComPortNumber, ComPortBaudRate);
}
@@ -210,7 +217,7 @@ NTAPI
KdpSendByte(_In_ UCHAR Byte)
{
/* Send the byte */
CpPutByte(&KdDebugComPort, Byte);
CpPutByte(&KdComPort, Byte);
}
KDSTATUS
@@ -218,7 +225,7 @@ NTAPI
KdpPollByte(OUT PUCHAR OutByte)
{
/* Poll the byte */
if (CpGetByte(&KdDebugComPort, OutByte, FALSE, FALSE) == CP_GET_SUCCESS)
if (CpGetByte(&KdComPort, OutByte, FALSE, FALSE) == CP_GET_SUCCESS)
{
return KdPacketReceived;
}
@@ -233,7 +240,7 @@ NTAPI
KdpReceiveByte(_Out_ PUCHAR OutByte)
{
/* Get the byte */
if (CpGetByte(&KdDebugComPort, OutByte, TRUE, FALSE) == CP_GET_SUCCESS)
if (CpGetByte(&KdComPort, OutByte, TRUE, FALSE) == CP_GET_SUCCESS)
{
return KdPacketReceived;
}
@@ -266,4 +273,34 @@ KdpPollBreakIn(VOID)
return KdPacketTimedOut;
}
#ifdef KDDEBUG
ULONG KdpDbgPrint(const char* Format, ...)
{
va_list ap;
static CHAR Buffer[512];
char* ptr;
int Length;
va_start(ap, Format);
Length = _vsnprintf(Buffer, sizeof(Buffer), Format, ap);
va_end(ap);
/* Check if we went past the buffer */
if (Length == -1)
{
/* Terminate it if we went over-board */
Buffer[sizeof(Buffer) - 1] = '\n';
/* Put maximum */
Length = sizeof(Buffer);
}
ptr = Buffer;
while (Length--)
CpPutByte(&KdDebugComPort, *ptr++);
return 0;
}
#endif
/* EOF */
+73 -4
View File
@@ -13,10 +13,13 @@
#include <halfuncs.h>
#include <stdio.h>
#include <arc/arc.h>
#include <inttypes.h>
#include <windbgkd.h>
#include <kddll.h>
// #define KDDEBUG /* uncomment to enable debugging this dll */
#include <pstypes.h>
#define KDDEBUG /* uncomment to enable debugging this dll */
#ifndef KDDEBUG
#define KDDBGPRINT(...)
@@ -25,9 +28,48 @@ extern ULONG KdpDbgPrint(const char* Format, ...);
#define KDDBGPRINT KdpDbgPrint
#endif
/* GDB doesn't like pid - tid 0, so +1 them */
FORCEINLINE HANDLE gdb_tid_to_handle(UINT_PTR Tid)
{
return (HANDLE)(Tid - 1);
}
#define gdb_pid_to_handle gdb_tid_to_handle
FORCEINLINE UINT_PTR handle_to_gdb_tid(HANDLE Handle)
{
return (UINT_PTR)Handle + 1;
}
#define handle_to_gdb_pid handle_to_gdb_tid
FORCEINLINE
VOID
InitManipulateFromStateChange(
_In_ ULONG ApiNumber,
_In_ const DBGKD_ANY_WAIT_STATE_CHANGE* StateChange,
_Out_ DBGKD_MANIPULATE_STATE64* Manipulate)
{
Manipulate->ApiNumber = ApiNumber;
Manipulate->Processor = StateChange->Processor;
Manipulate->ProcessorLevel = StateChange->ProcessorLevel;
}
/* Callbacks to simulate a KdReceive <-> KdSend loop without GDB being aware of it */
typedef VOID (*KDP_SEND_HANDLER)(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData
);
typedef KDSTATUS (*KDP_MANIPULATESTATE_HANDLER)(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext
);
/* gdb_input.c */
extern HANDLE gdb_dbg_thread;
KDSTATUS gdb_interpret_input(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
extern UINT_PTR gdb_dbg_tid;
extern UINT_PTR gdb_dbg_pid;
extern KDSTATUS gdb_interpret_input(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
extern KDSTATUS gdb_receive_and_interpret_packet(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
/* gdb_receive.c */
extern CHAR gdb_input[];
@@ -39,6 +81,8 @@ void send_gdb_packet(_In_ CHAR* Buffer);
void send_gdb_memory(_In_ VOID* Buffer, size_t Length);
void gdb_send_debug_io(_In_ PSTRING String);
void gdb_send_exception(void);
void send_gdb_ntstatus(_In_ NTSTATUS Status);
extern const char hex_chars[];
/* kdcom.c */
KDSTATUS NTAPI KdpPollBreakIn(VOID);
@@ -47,10 +91,35 @@ KDSTATUS NTAPI KdpReceiveByte(_Out_ PUCHAR OutByte);
/* kdpacket.c */
extern DBGKD_ANY_WAIT_STATE_CHANGE CurrentStateChange;
extern CONTEXT CurrentContext;
extern DBGKD_GET_VERSION64 KdVersion;
extern KDDEBUGGER_DATA64* KdDebuggerDataBlock;
extern LIST_ENTRY* ProcessListHead;
extern KDP_SEND_HANDLER KdpSendPacketHandler;
extern KDP_MANIPULATESTATE_HANDLER KdpManipulateStateHandler;
/* Commone ManipulateState handlers */
extern KDSTATUS ContinueManipulateStateHandler(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
extern KDSTATUS SetContextManipulateHandler(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
extern PEPROCESS TheIdleProcess;
extern PETHREAD TheIdleThread;
/* utils.c */
extern PEPROCESS find_process( _In_ UINT_PTR Pid);
extern PETHREAD find_thread(_In_ UINT_PTR Pid, _In_ UINT_PTR Tid);
/* arch_sup.c */
void gdb_send_registers(void);
extern KDSTATUS gdb_send_register(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
extern KDSTATUS gdb_send_registers(_Out_ DBGKD_MANIPULATE_STATE64* State, _Out_ PSTRING MessageData, _Out_ PULONG MessageLength, _Inout_ PKD_CONTEXT KdContext);
/* Architecture specific defines. See ntoskrnl/include/internal/arch/ke.h */
#ifdef _M_IX86
# define KdpGetContextPc(Context) \
((Context)->Eip)
# define KdpSetContextPc(Context, ProgramCounter) \
((Context)->Eip = (ProgramCounter))
# define KD_BREAKPOINT_SIZE sizeof(UCHAR)
#else
# error "Please define relevant macros for your architecture"
#endif
#endif /* _KDGDB_H_ */
+266 -52
View File
@@ -7,59 +7,158 @@
#include "kdgdb.h"
/* GLOBALS ********************************************************************/
/* LOCALS *********************************************************************/
static
VOID
FirstSendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData);
static BOOLEAN InException = FALSE;
DBGKD_ANY_WAIT_STATE_CHANGE CurrentStateChange;
/* GLOBALS ********************************************************************/
DBGKD_GET_VERSION64 KdVersion;
KDDEBUGGER_DATA64* KdDebuggerDataBlock;
/* LOCALS *********************************************************************/
static BOOLEAN FakeNextManipulatePacket = FALSE;
static DBGKD_MANIPULATE_STATE64 FakeManipulateState = {0};
LIST_ENTRY* ProcessListHead;
/* Callbacks used to communicate with KD aside from GDB */
KDP_SEND_HANDLER KdpSendPacketHandler = FirstSendHandler;
KDP_MANIPULATESTATE_HANDLER KdpManipulateStateHandler = NULL;
/* Data describing the current exception */
DBGKD_ANY_WAIT_STATE_CHANGE CurrentStateChange;
CONTEXT CurrentContext;
PEPROCESS TheIdleProcess;
PETHREAD TheIdleThread;
/* PRIVATE FUNCTIONS **********************************************************/
static
VOID
GetContextSendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData
)
{
DBGKD_MANIPULATE_STATE64* State = (DBGKD_MANIPULATE_STATE64*)MessageHeader->Buffer;
const CONTEXT* Context = (const CONTEXT*)MessageData->Buffer;
if ((PacketType != PACKET_TYPE_KD_STATE_MANIPULATE)
|| (State->ApiNumber != DbgKdGetContextApi)
|| (MessageData->Length < sizeof(*Context)))
{
/* Should we bugcheck ? */
KDDBGPRINT("ERROR: Received wrong packet from KD.\n");
while (1);
}
/* Just copy it */
RtlCopyMemory(&CurrentContext, Context, sizeof(*Context));
KdpSendPacketHandler = NULL;
}
static
KDSTATUS
GetContextManipulateHandler(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext
)
{
State->ApiNumber = DbgKdGetContextApi;
State->Processor = CurrentStateChange.Processor;
State->ReturnStatus = STATUS_SUCCESS;
State->ProcessorLevel = CurrentStateChange.ProcessorLevel;
MessageData->Length = 0;
/* Update the send <-> receive loop handler */
KdpSendPacketHandler = GetContextSendHandler;
KdpManipulateStateHandler = NULL;
return KdPacketReceived;
}
static
VOID
SetContextSendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData
)
{
DBGKD_MANIPULATE_STATE64* State = (DBGKD_MANIPULATE_STATE64*)MessageHeader->Buffer;
/* We just confirm that all went well */
if ((PacketType != PACKET_TYPE_KD_STATE_MANIPULATE)
|| (State->ApiNumber != DbgKdSetContextApi)
|| (State->ReturnStatus != STATUS_SUCCESS))
{
/* Should we bugcheck ? */
while (1);
}
KdpSendPacketHandler = NULL;
}
KDSTATUS
SetContextManipulateHandler(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext
)
{
State->ApiNumber = DbgKdSetContextApi;
State->Processor = CurrentStateChange.Processor;
State->ReturnStatus = STATUS_SUCCESS;
State->ProcessorLevel = CurrentStateChange.ProcessorLevel;
MessageData->Length = sizeof(CurrentContext);
if (MessageData->MaximumLength < sizeof(CurrentContext))
{
while (1);
}
RtlCopyMemory(MessageData->Buffer, &CurrentContext, sizeof(CurrentContext));
/* Update the send <-> receive loop handlers */
KdpSendPacketHandler = SetContextSendHandler;
KdpManipulateStateHandler = NULL;
return KdPacketReceived;
}
static
void
send_kd_state_change(DBGKD_ANY_WAIT_STATE_CHANGE* StateChange)
{
static BOOLEAN first = TRUE;
/* Save current state for later GDB queries */
CurrentStateChange = *StateChange;
if (first)
{
/*
* This is the first packet we receive.
* We take this as an opportunity to connect with GDB and to
* get the KD version block
*/
FakeNextManipulatePacket = TRUE;
FakeManipulateState.ApiNumber = DbgKdGetVersionApi;
FakeManipulateState.Processor = StateChange->Processor;
FakeManipulateState.ProcessorLevel = StateChange->ProcessorLevel;
FakeManipulateState.ReturnStatus = STATUS_SUCCESS;
first = FALSE;
return;
}
InException = TRUE;
switch (StateChange->NewState)
{
case DbgKdLoadSymbolsStateChange:
{
/* We don't care about symbols loading */
FakeNextManipulatePacket = TRUE;
FakeManipulateState.ApiNumber = DbgKdContinueApi;
FakeManipulateState.Processor = StateChange->Processor;
FakeManipulateState.ProcessorLevel = StateChange->ProcessorLevel;
FakeManipulateState.ReturnStatus = STATUS_SUCCESS;
FakeManipulateState.u.Continue.ContinueStatus = STATUS_SUCCESS;
KdpManipulateStateHandler = ContinueManipulateStateHandler;
break;
}
case DbgKdExceptionStateChange:
{
PETHREAD Thread = (PETHREAD)(ULONG_PTR)StateChange->Thread;
/* Save current state for later GDB queries */
CurrentStateChange = *StateChange;
KDDBGPRINT("Exception 0x%08x in thread p%p.%p.\n",
StateChange->u.Exception.ExceptionRecord.ExceptionCode,
PsGetThreadProcessId(Thread),
PsGetThreadId(Thread));
/* Set the current debugged process/thread accordingly */
gdb_dbg_tid = handle_to_gdb_tid(PsGetThreadId(Thread));
gdb_dbg_pid = handle_to_gdb_pid(PsGetThreadProcessId(Thread));
gdb_send_exception();
/* Next receive call will ask for the context */
KdpManipulateStateHandler = GetContextManipulateHandler;
break;
}
default:
/* FIXME */
while (1);
@@ -72,6 +171,9 @@ send_kd_debug_io(
_In_ DBGKD_DEBUG_IO* DebugIO,
_In_ PSTRING String)
{
if (InException)
return;
switch (DebugIO->ApiNumber)
{
case DbgKdPrintStringApi:
@@ -97,25 +199,133 @@ send_kd_state_manipulate(
gdb_send_registers((CONTEXT*)MessageData->Buffer);
return;
#endif
case DbgKdReadVirtualMemoryApi:
/* Answer to 'm' GDB request */
send_gdb_memory(MessageData->Buffer, State->u.ReadMemory.ActualBytesRead);
break;
case DbgKdGetVersionApi:
{
LIST_ENTRY* DebuggerDataList;
/* Simply get a copy */
RtlCopyMemory(&KdVersion, &State->u.GetVersion64, sizeof(KdVersion));
DebuggerDataList = (LIST_ENTRY*)(ULONG_PTR)KdVersion.DebuggerDataList;
KdDebuggerDataBlock = CONTAINING_RECORD(DebuggerDataList->Flink, KDDEBUGGER_DATA64, Header.List);
return;
}
default:
/* FIXME */
while (1);
}
}
KDSTATUS
ContinueManipulateStateHandler(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext
)
{
/* Let's go on */
State->ApiNumber = DbgKdContinueApi;
State->ReturnStatus = STATUS_SUCCESS; /* ? */
State->Processor = CurrentStateChange.Processor;
State->ProcessorLevel = CurrentStateChange.ProcessorLevel;
if (MessageData)
MessageData->Length = 0;
*MessageLength = 0;
State->u.Continue.ContinueStatus = STATUS_SUCCESS;
/* We definitely are at the end of the send <-> receive loop, if any */
KdpSendPacketHandler = NULL;
KdpManipulateStateHandler = NULL;
/* We're not handling an exception anymore */
InException = FALSE;
return KdPacketReceived;
}
static
VOID
GetVersionSendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData)
{
DBGKD_MANIPULATE_STATE64* State = (DBGKD_MANIPULATE_STATE64*)MessageHeader->Buffer;
LIST_ENTRY* DebuggerDataList;
/* Confirm that all went well */
if ((PacketType != PACKET_TYPE_KD_STATE_MANIPULATE)
|| (State->ApiNumber != DbgKdGetVersionApi)
|| !NT_SUCCESS(State->ReturnStatus))
{
/* FIXME: should detach from KD and go along without debugging */
KDDBGPRINT("Wrong packet received after asking for data.\n");
while(1);
}
/* Copy the relevant data */
RtlCopyMemory(&KdVersion, &State->u.GetVersion64, sizeof(KdVersion));
DebuggerDataList = (LIST_ENTRY*)(ULONG_PTR)KdVersion.DebuggerDataList;
KdDebuggerDataBlock = CONTAINING_RECORD(DebuggerDataList->Flink, KDDEBUGGER_DATA64, Header.List);
ProcessListHead = (LIST_ENTRY*)KdDebuggerDataBlock->PsActiveProcessHead.Pointer;
/* Now we can get the context for the current state */
KdpSendPacketHandler = NULL;
KdpManipulateStateHandler = GetContextManipulateHandler;
}
static
KDSTATUS
GetVersionManipulateStateHandler(
_Out_ DBGKD_MANIPULATE_STATE64* State,
_Out_ PSTRING MessageData,
_Out_ PULONG MessageLength,
_Inout_ PKD_CONTEXT KdContext)
{
/* Ask for the version data */
State->ApiNumber = DbgKdGetVersionApi;
State->Processor = CurrentStateChange.Processor;
State->ProcessorLevel = CurrentStateChange.ProcessorLevel;
/* The next send call will serve this query */
KdpSendPacketHandler = GetVersionSendHandler;
KdpManipulateStateHandler = NULL;
return KdPacketReceived;
}
static
VOID
FirstSendHandler(
_In_ ULONG PacketType,
_In_ PSTRING MessageHeader,
_In_ PSTRING MessageData)
{
DBGKD_ANY_WAIT_STATE_CHANGE* StateChange = (DBGKD_ANY_WAIT_STATE_CHANGE*)MessageHeader->Buffer;
PETHREAD Thread;
if (PacketType == PACKET_TYPE_KD_DEBUG_IO)
{
/* This is not the packet we are waiting for */
send_kd_debug_io((DBGKD_DEBUG_IO*)MessageHeader->Buffer, MessageData);
return;
}
if (PacketType != PACKET_TYPE_KD_STATE_CHANGE64)
{
KDDBGPRINT("First KD packet is not a state change!\n");
/* FIXME: What should we send back to KD ? */
while(1);
}
KDDBGPRINT("KDGDB: START!\n");
Thread = (PETHREAD)(ULONG_PTR)StateChange->Thread;
/* Set up the current state */
CurrentStateChange = *StateChange;
gdb_dbg_tid = handle_to_gdb_tid(PsGetThreadId(Thread));
gdb_dbg_pid = handle_to_gdb_pid(PsGetThreadProcessId(Thread));
/* This is the idle process. Save it! */
TheIdleThread = Thread;
TheIdleProcess = (PEPROCESS)Thread->Tcb.ApcState.Process;
KDDBGPRINT("Pid Tid of the first message: %" PRIxPTR", %" PRIxPTR ".\n", gdb_dbg_pid, gdb_dbg_tid);
/* The next receive call will be asking for the version data */
KdpSendPacketHandler = NULL;
KdpManipulateStateHandler = GetVersionManipulateStateHandler;
}
/* PUBLIC FUNCTIONS ***********************************************************/
/******************************************************************************
@@ -159,12 +369,9 @@ KdReceivePacket(
State = (DBGKD_MANIPULATE_STATE64*)MessageHeader->Buffer;
if (FakeNextManipulatePacket)
{
FakeNextManipulatePacket = FALSE;
*State = FakeManipulateState;
return KdPacketReceived;
}
/* Maybe we are in a send<->receive loop that GDB doesn't need to know about */
if (KdpManipulateStateHandler != NULL)
return KdpManipulateStateHandler(State, MessageData, DataLength, KdContext);
/* Receive data from GDB */
Status = gdb_receive_packet(KdContext);
@@ -183,6 +390,13 @@ KdSendPacket(
IN PSTRING MessageData,
IN OUT PKD_CONTEXT KdContext)
{
/* Maybe we are in a send <-> receive loop that GDB doesn't need to know about */
if (KdpSendPacketHandler)
{
KdpSendPacketHandler(PacketType, MessageHeader, MessageData);
return;
}
switch (PacketType)
{
case PACKET_TYPE_KD_STATE_CHANGE64:
+71
View File
@@ -0,0 +1,71 @@
/*
* COPYRIGHT: GPL, see COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: drivers/base/kddll/utils.c
* PURPOSE: Misc helper functions.
*/
#include "kdgdb.h"
/*
* We cannot use PsLookupProcessThreadByCid or alike as we could be running at any IRQL.
* So we have to loop over the process list.
*/
PEPROCESS
find_process(
_In_ UINT_PTR Pid)
{
HANDLE ProcessId = gdb_pid_to_handle(Pid);
LIST_ENTRY* ProcessEntry;
PEPROCESS Process;
/* Special case for idle process */
if (Pid == 1)
return TheIdleProcess;
for (ProcessEntry = ProcessListHead->Flink;
ProcessEntry != ProcessListHead;
ProcessEntry = ProcessEntry->Flink)
{
Process = CONTAINING_RECORD(ProcessEntry, EPROCESS, ActiveProcessLinks);
if (Process->UniqueProcessId == ProcessId)
return Process;
}
return NULL;
}
PETHREAD
find_thread(
_In_ UINT_PTR Pid,
_In_ UINT_PTR Tid)
{
HANDLE ThreadId = gdb_tid_to_handle(Tid);
PETHREAD Thread;
PEPROCESS Process;
LIST_ENTRY* ThreadEntry;
/* Special case for the idle thread */
if ((Pid == 1) && (Tid == 1))
return TheIdleThread;
Process = find_process(Pid);
if (!Process)
return NULL;
for (ThreadEntry = Process->ThreadListHead.Flink;
ThreadEntry != &Process->ThreadListHead;
ThreadEntry = ThreadEntry->Flink)
{
Thread = CONTAINING_RECORD(ThreadEntry, ETHREAD, ThreadListEntry);
/* For GDB, Tid == 0 means any thread */
if ((Thread->Cid.UniqueThread == ThreadId) || (Tid == 0))
{
return Thread;
}
}
return NULL;
}

Some files were not shown because too many files have changed in this diff Show More