mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
Sync with trunk r64222.
svn path=/branches/shell-experiments/; revision=64225
This commit is contained in:
@@ -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\
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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ı."
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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 = Текстовый редактор.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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, але виріс до редактора загального користування з засобами збирання та запуску програм.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = Відкритий графічний редактор для малих дітей.
|
||||
|
||||
@@ -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 клієнт/сервер.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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?"
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -156,6 +156,8 @@ NTSTATUS
|
||||
LogfCreate(PLOGFILE *Logfile,
|
||||
WCHAR * LogName,
|
||||
PUNICODE_STRING FileName,
|
||||
ULONG ulMaxSize,
|
||||
ULONG ulRetention,
|
||||
BOOL Permanent,
|
||||
BOOL Backup);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -162,6 +162,8 @@ ElfCreateBackupLogHandle(PLOGHANDLE *LogHandle,
|
||||
Status = LogfCreate(&lpLogHandle->LogFile,
|
||||
NULL,
|
||||
FileName,
|
||||
0,
|
||||
0,
|
||||
FALSE,
|
||||
TRUE);
|
||||
if (!NT_SUCCESS(Status))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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ığı"
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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ü"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -7,6 +7,7 @@ list(APPEND SOURCE
|
||||
gdb_send.c
|
||||
kdcom.c
|
||||
kdpacket.c
|
||||
utils.c
|
||||
kdgdb.h)
|
||||
|
||||
# TODO: AMD64, ARM...
|
||||
|
||||
+226
-67
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user