[ros-diffs] [fireball] 41282: - Add ReactOS Device Detection Tool - RosDDT. It's a command line tool for checking PC's hardware configuration for compatibility with ReactOS, and for reporting working hardware configurations to ReactOS hardware compatibility database. The tool is able of autoupdating its hardware compatibility database. * Web part is stubbed for now (hw.php) and needs to be developed. * Actual hardware database file (rosddt.ini) has only sample information. * Readme file is in Russian language, however running rosddt.exe without parameters provides a built-in English usage help.

fireball at svn.reactos.org fireball at svn.reactos.org
Thu Jun 4 14:38:31 CEST 2009


Author: fireball
Date: Thu Jun  4 16:38:30 2009
New Revision: 41282

URL: http://svn.reactos.org/svn/reactos?rev=41282&view=rev
Log:
- Add ReactOS Device Detection Tool - RosDDT. It's a command line tool for checking PC's hardware configuration for compatibility with ReactOS, and for reporting working hardware configurations to ReactOS hardware compatibility database. The tool is able of autoupdating its hardware compatibility database.
 * Web part is stubbed for now (hw.php) and needs to be developed.
 * Actual hardware database file (rosddt.ini) has only sample information.
 * Readme file is in Russian language, however running rosddt.exe without parameters provides a built-in English usage help.

Added:
    trunk/rosapps/applications/sysutils/rosddt/   (with props)
    trunk/rosapps/applications/sysutils/rosddt/http.c   (with props)
    trunk/rosapps/applications/sysutils/rosddt/http.h   (with props)
    trunk/rosapps/applications/sysutils/rosddt/hw.php
    trunk/rosapps/applications/sysutils/rosddt/readme.txt   (with props)
    trunk/rosapps/applications/sysutils/rosddt/rosddt.c   (with props)
    trunk/rosapps/applications/sysutils/rosddt/rosddt.ini   (with props)
    trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild   (with props)
    trunk/rosapps/applications/sysutils/rosddt/rosddt.rc   (with props)
Modified:
    trunk/rosapps/applications/sysutils/sysutils.rbuild

Propchange: trunk/rosapps/applications/sysutils/rosddt/
------------------------------------------------------------------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Thu Jun  4 16:38:30 2009
@@ -1,0 +1,2 @@
+([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))?
+(\d+)

Propchange: trunk/rosapps/applications/sysutils/rosddt/
------------------------------------------------------------------------------
    bugtraq:message = See issue #%BUGID% for more details.

Propchange: trunk/rosapps/applications/sysutils/rosddt/
------------------------------------------------------------------------------
    bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%

Propchange: trunk/rosapps/applications/sysutils/rosddt/
------------------------------------------------------------------------------
    tsvn:logminsize = 10

Added: trunk/rosapps/applications/sysutils/rosddt/http.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/http.c?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/http.c (added)
+++ trunk/rosapps/applications/sysutils/rosddt/http.c [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,131 @@
+#include <windows.h>
+#include <wininet.h>
+#include <urlmon.h>
+#include <stdio.h>
+#include "http.h"
+
+#define INTERNET_FLAGS (INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_COOKIES )
+
+static char *http_receive(HINTERNET h_req, u_long *d_size)
+{
+	u_long bytes  = sizeof(u_long);
+	u_long qsize  = 0;
+	u_long readed = 0;
+	char  *data   = NULL;
+	char   buff[4096];
+
+	if (HttpQueryInfo(h_req, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &qsize, &bytes, NULL) != 0) {
+		data = malloc(qsize + 1);
+	}
+
+	do
+	{
+		if (InternetReadFile(h_req, buff, sizeof(buff), &bytes) == 0) {
+			break;
+		}
+		if ( (readed + bytes) > qsize) {
+			data = realloc(data, readed + bytes + 1);
+			if (data == NULL) break;
+			qsize += bytes;
+		}
+		memcpy(data + readed, buff, bytes); readed += bytes;
+	} while (bytes != 0);
+
+	if ( (data != NULL) && (readed != qsize) ) {
+		free(data); data = NULL;
+	} else {
+		if (d_size != NULL) *d_size = readed;
+		data[readed] = 0;
+	}	
+	return data;
+}
+
+void *http_get(wchar_t *url, u_long *d_size)
+{
+	HINTERNET h_inet = NULL;
+	HINTERNET h_req  = NULL;
+	char     *replay = NULL;
+	
+	do
+	{
+		h_inet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
+		if (h_inet == NULL) break;
+		
+		h_req = InternetOpenUrl(h_inet, url, NULL, 0, INTERNET_FLAGS, 0);
+		if (h_req == NULL) break;
+
+		replay = http_receive(h_req, d_size);
+	} while (0);
+
+	if (h_req != NULL) {
+		InternetCloseHandle(h_req);
+	}
+	if (h_inet != NULL) {
+		InternetCloseHandle(h_inet);
+	}
+	return replay;
+}
+
+void *http_post(wchar_t *url, void *data, int size, u_long *d_size)
+{
+	URL_COMPONENTS url_cm = {0};
+	HINTERNET      h_inet = NULL;
+	HINTERNET      h_conn = NULL;
+	HINTERNET      h_req  = NULL;
+	char          *q_data = NULL;
+	char          *replay = NULL;
+	wchar_t        host[MAX_PATH];
+	wchar_t        path[MAX_PATH];
+	unsigned char *p, *d = data;
+
+	do
+	{
+		if ( (q_data = malloc(size * 3 + 10)) == NULL ) {
+			break;
+		}
+		strcpy(q_data, "data="); p = q_data + 5;
+
+		while (size--) {
+			p += sprintf(p, "%%%0.2x", (u_long)*d++);
+		}
+
+		url_cm.dwStructSize     = sizeof(url_cm);
+		url_cm.lpszHostName     = host;
+		url_cm.dwHostNameLength = sizeof(host);
+		url_cm.lpszUrlPath      = path;
+		url_cm.dwUrlPathLength  = sizeof(path);
+
+		if (InternetCrackUrl(url, 0, 0, &url_cm) == 0) {
+			break;
+		}
+
+		h_inet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
+		if (h_inet == NULL) break;
+
+		h_conn = InternetConnect(h_inet, host, url_cm.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
+		if (h_conn == NULL) break;
+
+		h_req = HttpOpenRequest(h_conn, L"POST", path, NULL, NULL, NULL, INTERNET_FLAGS, 0);
+		if (h_req == NULL) break;
+
+		HttpAddRequestHeaders(
+			h_req, L"Content-Type: application/x-www-form-urlencoded", 47*2, HTTP_ADDREQ_FLAG_ADD);
+
+		if (HttpSendRequest(h_req, NULL, 0, q_data, strlen(q_data)) == 0) {
+			break;
+		}
+		replay = http_receive(h_req, d_size);
+	} while (0);
+
+	if (h_req != NULL) {
+		InternetCloseHandle(h_req);
+	}
+	if (h_conn != NULL) {
+		InternetCloseHandle(h_conn);
+	}
+	if (h_inet != NULL) {
+		InternetCloseHandle(h_inet);
+	}
+	if (q_data != NULL) free(q_data);
+	return replay;
+}

Propchange: trunk/rosapps/applications/sysutils/rosddt/http.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/applications/sysutils/rosddt/http.h
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/http.h?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/http.h (added)
+++ trunk/rosapps/applications/sysutils/rosddt/http.h [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,7 @@
+#ifndef _HTTP_H_
+#define _HTTP_H_
+
+void *http_get(wchar_t *url, u_long *d_size);
+void *http_post(wchar_t *url, void *data, int size, u_long *d_size);
+
+#endif

Propchange: trunk/rosapps/applications/sysutils/rosddt/http.h
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/applications/sysutils/rosddt/hw.php
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/hw.php?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/hw.php (added)
+++ trunk/rosapps/applications/sysutils/rosddt/hw.php [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,10 @@
+<?php
+$file = fopen ("hw.txt", "a");
+if (!$file) {
+    echo "<p>Unable to open file for writing.\n";
+    exit;
+}
+fputs ($file, $_POST['data']. "\n");
+fclose ($file);
+echo "_ok_";
+?>

Added: trunk/rosapps/applications/sysutils/rosddt/readme.txt
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/readme.txt?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/readme.txt (added)
+++ trunk/rosapps/applications/sysutils/rosddt/readme.txt [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,17 @@
+=========== rosddt - ReactOS device detection tool ===========
+
+Èñïîëüçîâàíèå:
+rosddt -enum  - âûâåñòè ñïèñîê âñåãî óñòàíîâëåííîãî æåëåçà
+rosddt -check - ïðîâåðèòü ñîâìåñòèìîñòü ReactOS ñ âàøåé ñèñòåìîé
+rosddt -update - îáíîâèòü áàçó ñîâìåñòèìîñòè äî ïîñëåäíåé âåðñèè
+rosddt -report - îòïðàâèòü îò÷åò îá àïïàðàòíîé êîíôèãóðàöèè ðàçðàáîò÷èêàì ReactOS. Ýòà èíôîðìàöèÿ áóäåò èñïîëüçîâàíà äëÿ âåäåíèÿ ñòàòèñòèêè è ïîääåðæêè áàçû ñîâìåñòèìîñòè.
+
+=== ôîðìàò ôàéëà rosddt.ini ===
+Ñåêöèÿ "URL" ñîäåðæèò äâå ññûëêè: udpate - ññûëêà íà rosddt.ini, èñïîëüçóåòñÿ ïðè îáíîâëåíèè, report - ññûëêà íà ñêðèïò ïðèíèìàþùèé îò÷åòû. Âñ¸ ñîäåðæèìîå îò÷åòà ïåðåäà¸òñÿ â ïîëå "data" POST çàïðîñà â êîäèðîâêå UTF-8. Ïðèìåð ïðè¸ìà îò÷åòîâ ñìîòðèòå â hw.php.
+
+Ñåêöèÿ "HW" ñîäåðæèò áàçó ñîâìåñòèìîñòè ReactOS ñ æåëåçîì. Êàæäîå çàíåñ¸ííîå â áàçó óñòðîéñòâî ìîæåò èìåòü òðè ñòàòóñà ñîâìåñòèìîñòè: ok - óñòðîéñòâî ðàáîòàåò â ReactOS, notwork - óñòðîéñòâî íå ðàáîòàåò â ReactOS è crash - ReactOS íå çàïóñêàåòñÿ íà ñèñòåìå ñ ýòèì óñòðîéñòâîì.
+Óñòðîéñòâà ìîãóò îáîçíà÷àòüñÿ ñëåäóþùèìè ñïîñîáàìè:
+1 - Ïî ïîëíîìó ÷èòàåìîìó èìåíè óñòðîéñòâà. Íàïðèìåð "Intel(R) 82371AB/EB PCI Bus Master IDE Controller".
+2 - Ïî ïîëíîìó PNP ID óñòðîéñòâà. Íàïðèìåð "PCI\VEN_8086&DEV_1237&SUBSYS_00000000&REV_02".
+3 - Äëÿ PCI óñòðîéñòâ ìîæíî óêàçûâàòü òàêæå ñîêðàùåííûå ñîêðàùåííûå pnp id, òàêèå êàê "PCI\VEN_8086&DEV_1237" èëè "PCI\VEN_8086&DEV_1237&REV_02". Ðåêîìåíäóåòñÿ ïîëüçîâàòüñÿ èìåííî òàêîé ôîðìîé çàïèñè, ïîñêîëüêó ïîëíûé id ïðèâÿçàí ê íîìåðó pci ñëîòà â êîòîðûé âñòàâëåíî óñòðîéñòâî. Ðåâèçèþ óêàçûâàòü ïî íåîáõîäèìîñòè, ëó÷øå îáîéòèñü áåç íå¸.
+4 - Äëÿ USB óñòðîéñòâ ìîæíî ïîëüçîâàòüñÿ ñîêðàùåííîé ôîðìîé çàïèñè. Íàïðèìåð "USB\ROOT_HUB&VID8086&PID3A34&REV0000" ìîæíî çàïèñàòü êàê "USB\VID8086&PID3A34" èëè "USB\VID8086&PID3A34&REV0000"

Propchange: trunk/rosapps/applications/sysutils/rosddt/readme.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/applications/sysutils/rosddt/rosddt.c
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/rosddt.c?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/rosddt.c (added)
+++ trunk/rosapps/applications/sysutils/rosddt/rosddt.c [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,263 @@
+#include <stdio.h>
+#include <windows.h>
+#include <setupapi.h>
+#include "http.h"
+
+#define ST_NEUTRAL      0
+#define ST_ROS_CRASH    1
+#define ST_DEV_NOTWORK  2
+#define ST_DEV_OK       3
+#define ST_ERROR        4
+#define ST_LAST_STATUS  ST_ERROR
+
+static int      is_show_hw;
+static int      is_check_hw;
+static wchar_t  gl_ini_file[MAX_PATH];
+static wchar_t *gl_report;
+
+static int hw_check_ini(wchar_t *name)
+{
+	wchar_t buff[MAX_PATH];
+
+	if (GetPrivateProfileString(L"HW", name, NULL, buff, MAX_PATH, gl_ini_file) == 0) {
+		return ST_NEUTRAL;
+	}
+	if (_wcsicmp(buff, L"ok") == 0) return ST_DEV_OK;
+	if (_wcsicmp(buff, L"notwork") == 0) return ST_DEV_NOTWORK;
+	if (_wcsicmp(buff, L"crash") == 0) return ST_ROS_CRASH;
+	return ST_NEUTRAL;
+}
+
+static int hw_check_base(wchar_t *hw_id, wchar_t *hw_name)
+{
+	wchar_t buff[MAX_PATH], *p;
+	int     status;
+
+	if ( (status = hw_check_ini(hw_id)) != ST_NEUTRAL ) {
+		return status;
+	}
+	if ( (status = hw_check_ini(hw_name)) != ST_NEUTRAL ) {
+		return status;
+	}
+
+	if (wcsncmp(hw_id, L"PCI\\VEN_", 8) == 0)
+	{
+		wcsncpy(buff, hw_id, 21); buff[21] = 0;
+
+		if ( (status = hw_check_ini(buff)) != ST_NEUTRAL ) {
+			return status;
+		}
+
+		if (p = wcsstr(hw_id, L"&REV_")) {
+			wcscat(buff, p); status = hw_check_ini(buff);
+		}
+	} else if ( (wcsncmp(hw_id, L"USB\\", 4) == 0) && (p = wcsstr(hw_id, L"&VID")) )
+	{
+		wsprintf(buff, L"USB\\%s", p+1);
+		
+		if ( (status = hw_check_ini(buff)) != ST_NEUTRAL ) {
+			return status;
+		}
+
+		if (p = wcsstr(buff, L"&REV")) {
+			*p = 0; status = hw_check_ini(buff);
+		}
+	}
+	return status;
+}
+
+static void trim(wchar_t *s) 
+{
+	wchar_t *p;
+	for (p = s + wcslen(s) - 1; (p > s) && (*p == L' '); *p-- = 0);
+}
+
+static int hw_check_device(HDEVINFO h_info, SP_DEVINFO_DATA *d_inf)
+{
+	wchar_t *hw_id   = NULL;
+	wchar_t *hw_name = NULL;
+	u_long   type, bytes;
+	int      status;
+	char     name[MAX_PATH];
+	wchar_t  w_name[MAX_PATH];
+	
+	do
+	{
+		if ( (hw_id = malloc(4096)) == NULL ) {
+			status = ST_ERROR; break;
+		}
+		if ( (hw_name = malloc(4096)) == NULL ) {
+			status = ST_ERROR; break;
+		}
+		hw_id[0] = 0, hw_name[0] = 0;
+
+		SetupDiGetDeviceRegistryProperty(h_info, d_inf, SPDRP_HARDWAREID, &type, (void*)hw_id, 4096, &bytes);
+		SetupDiGetDeviceRegistryProperty(h_info, d_inf, SPDRP_DEVICEDESC, &type, (void*)hw_name, 4096, &bytes);
+
+		if (hw_id[0] == 0 || hw_name[0] == 0) {
+			status = ST_NEUTRAL; break;
+		}	
+		/* trim strings */
+		trim(hw_id); trim(hw_name);
+
+		if ( (wcschr(hw_id, L'\\') == NULL) || (_wcsnicmp(hw_id, L"ROOT\\", 5) == 0) ||
+			 (_wcsicmp(hw_id, L"STORAGE\\Volume") == 0) || (_wcsicmp(hw_id, L"UMB\\UMBUS") == 0) ||
+			 (_wcsnicmp(hw_id, L"SW\\", 3) == 0) )
+		{
+			status = ST_NEUTRAL; break;
+		}
+
+		if (is_show_hw != 0) {
+			CharToOem(hw_name, name);
+			wprintf(L"%s - [%S]\n", hw_id, name);
+		}
+
+		if (gl_report != NULL) {
+			wsprintf(w_name, L"%s - [%s]\n", hw_id, hw_name);
+			wcscat(gl_report, w_name);
+		}
+
+		if (is_check_hw != 0) 
+		{
+			status = hw_check_base(hw_id, hw_name);
+
+			if (status == ST_DEV_NOTWORK) {
+				CharToOem(hw_name, name);
+				wprintf(L"Device \"%S\" does not work in ReactOS\n", name);
+			}
+			if (status == ST_ROS_CRASH) {
+				CharToOem(hw_name, name);
+				wprintf(L"ReactOS does not work with device \"%S\"\n", name);
+			}			
+		} else {
+			status = ST_NEUTRAL;
+		}
+	} while (0);
+
+	if (hw_id != NULL) free(hw_id);
+	if (hw_name != NULL) free(hw_name);
+
+	return status;
+}
+
+static void do_update_base()
+{
+	wchar_t up_url[MAX_PATH];
+	void   *data;
+	u_long  size;
+	FILE   *f;
+
+	if (GetPrivateProfileString(L"URL", L"udpate", NULL, up_url, MAX_PATH, gl_ini_file) == 0) {
+		wprintf(L"Update URL not found in rosddt.ini\n"); return;
+	}
+
+	wprintf(L"Downloading new rosddt.ini...\n");
+
+	if (data = http_get(up_url, &size)) 
+	{
+		if (f = _wfopen(gl_ini_file, L"wb")) {
+			fwrite(data, 1, size, f);
+			fclose(f);
+			wprintf(L"Update completed\n");
+		} else {
+			wprintf(L"Can not open rosddt.ini for writing\n"); 
+		}
+		free(data);
+	} else {
+		wprintf(L"Error, rosddt.ini can not be loaded\n");
+	}
+}
+
+static void do_send_report(wchar_t *report)
+{
+	wchar_t up_url[MAX_PATH];
+	int     utf_sz;
+	char   *utf, *p;
+
+	if (GetPrivateProfileString(L"URL", L"report", NULL, up_url, MAX_PATH, gl_ini_file) == 0) {
+		wprintf(L"Report URL not found in rosddt.ini\n"); return;
+	}
+
+	utf_sz = WideCharToMultiByte(CP_UTF8, 0, report, -1, NULL, 0, NULL, NULL);
+	utf    = malloc(utf_sz);
+	utf_sz = WideCharToMultiByte(CP_UTF8, 0, report, -1, utf, utf_sz, NULL, NULL);
+
+	wprintf(L"Sending report...\n");
+
+	if (p = http_post(up_url, utf, utf_sz-1, NULL)) {
+		wprintf(L"%S\n", p); free(p);
+	} else {
+		wprintf(L"Report can not be sended, connection error\n");
+	}
+}
+
+int wmain(int argc, wchar_t *argv[])
+{
+	HDEVINFO        h_info;
+	SP_DEVINFO_DATA d_inf;
+	int             codes[ST_LAST_STATUS + 1] = {0};
+	int             i;
+	wchar_t        *p;
+		
+	if (argc != 2)
+	{
+		wprintf(
+			L"rosddt [parameters]\n"
+			L" -enum   enumerate all installed hardware\n"
+			L" -check  check hardware compatibility with ReactOS\n"
+			L" -update update hardware compatibility database\n"
+			L" -report send your hardware configuration to ReactOS team\n"
+			);
+		return 0;
+	}
+
+	/* get path to ini file */
+	GetModuleFileName(NULL, gl_ini_file, MAX_PATH);	
+	for (p = gl_ini_file + wcslen(gl_ini_file); *p != L'\\'; *p-- = 0);
+	wcscat(gl_ini_file, L"rosddt.ini");
+
+	if (_wcsicmp(argv[1], L"-update") == 0) {
+		do_update_base(); return 0;
+	}
+	if (_wcsicmp(argv[1], L"-enum") == 0) {
+		is_show_hw = 1; is_check_hw = 0;
+	}
+	if (_wcsicmp(argv[1], L"-check") == 0) {
+		is_show_hw = 0; is_check_hw = 1;
+	}
+	if (_wcsicmp(argv[1], L"-report") == 0) {
+		is_show_hw = 0; is_check_hw = 0;
+		gl_report = malloc(65536); gl_report[0] = 0;
+	}
+
+	h_info = SetupDiGetClassDevs(NULL, 0, 0, DIGCF_PRESENT | DIGCF_ALLCLASSES);
+
+	if (h_info == INVALID_HANDLE_VALUE) {
+		wprintf(L"SetupDiGetClassDevs error\n"); return 1;
+	}
+
+	d_inf.cbSize = sizeof(d_inf); i = 0;
+
+	while (SetupDiEnumDeviceInfo(h_info, i++, &d_inf) != 0) {
+		codes[hw_check_device(h_info, &d_inf)]++;		
+	}
+
+	if (is_check_hw != 0) 
+	{
+		wprintf(
+			L"Checking completed.\nFound %d supported devices, %d unsupported devices and %d incompatible devices\n", 
+			codes[ST_DEV_OK], codes[ST_DEV_NOTWORK], codes[ST_ROS_CRASH]);
+
+		if (codes[ST_ROS_CRASH] == 0) {
+			wprintf(L"ReactOS can be installed on your computer\n");
+		} else {
+			wprintf(L"ReactOS can not be installed on your computer\n");
+		}
+	}
+
+	if (gl_report != NULL) {
+		do_send_report(gl_report);
+	}
+
+	return 0; 
+}

Propchange: trunk/rosapps/applications/sysutils/rosddt/rosddt.c
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/applications/sysutils/rosddt/rosddt.ini
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/rosddt.ini?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/rosddt.ini (added)
+++ trunk/rosapps/applications/sysutils/rosddt/rosddt.ini [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,8 @@
+[URL]
+udpate = http://iso.reactos.org/_tools/rosddt.ini
+report = http://iso.reactos.org/_tools/hw.php
+
+[HW]
+PCI\VEN_8086&DEV_7000&SUBSYS_00000000&REV_00 = ok
+ACPI Fixed Feature Button = notwork
+Intel(R) 82371AB/EB PCI Bus Master IDE Controller = crash

Propchange: trunk/rosapps/applications/sysutils/rosddt/rosddt.ini
------------------------------------------------------------------------------
    svn:eol-style = CRLF

Added: trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild (added)
+++ trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,11 @@
+<module name="rosddt" type="win32cui" installbase="system32" installname="rosddt.exe" unicode="yes" allowwarnings="true">
+
+	<library>setupapi</library>
+	<library>wininet</library>
+	<library>kernel32</library>
+	<library>user32</library>
+
+	<file>http.c</file>
+	<file>rosddt.c</file>
+	<file>rosddt.rc</file>
+</module>

Propchange: trunk/rosapps/applications/sysutils/rosddt/rosddt.rbuild
------------------------------------------------------------------------------
    svn:eol-style = native

Added: trunk/rosapps/applications/sysutils/rosddt/rosddt.rc
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/rosddt/rosddt.rc?rev=41282&view=auto
==============================================================================
--- trunk/rosapps/applications/sysutils/rosddt/rosddt.rc (added)
+++ trunk/rosapps/applications/sysutils/rosddt/rosddt.rc [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -1,0 +1,7 @@
+#include <windows.h>
+
+#define REACTOS_STR_FILE_DESCRIPTION	"ReactOS Device Detection Tool\0"
+#define REACTOS_STR_INTERNAL_NAME	"rosddt\0"
+#define REACTOS_STR_ORIGINAL_FILENAME	"rosddt.exe\0"
+#define REACTOS_STR_ORIGINAL_COPYRIGHT	"2009, ReactOS Development Team\0"
+#include <reactos/version.rc>

Propchange: trunk/rosapps/applications/sysutils/rosddt/rosddt.rc
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/rosapps/applications/sysutils/sysutils.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/sysutils.rbuild?rev=41282&r1=41281&r2=41282&view=diff
==============================================================================
--- trunk/rosapps/applications/sysutils/sysutils.rbuild [iso-8859-1] (original)
+++ trunk/rosapps/applications/sysutils/sysutils.rbuild [iso-8859-1] Thu Jun  4 16:38:30 2009
@@ -40,6 +40,10 @@
 		<xi:include href="regexpl/regexpl.rbuild" />
 	</directory>
 
+	<directory name="rosddt">
+		<xi:include href="rosddt/rosddt.rbuild" />
+	</directory>
+
 	<directory name="screenshot">
 		<xi:include href="screenshot/screenshot.rbuild" />
 	</directory>



More information about the Ros-diffs mailing list