Author: mjmartin
Date: Sun Jan 11 08:28:45 2009
New Revision: 38699
URL: http://svn.reactos.org/svn/reactos?rev=38699&view=rev
Log:
- Last implementation was failing to charge the QuotaAvailable for the message length proceeding the message in the buffer, causing overwriting of the pool. See bug 4018 for more info.
Modified:
trunk/reactos/drivers/filesystems/npfs/rw.c
Modified: trunk/reactos/drivers/filesystems/npfs/rw.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/npfs/r…
==============================================================================
--- trunk/reactos/drivers/filesystems/npfs/rw.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/npfs/rw.c [iso-8859-1] Sun Jan 11 08:28:45 2009
@@ -438,6 +438,7 @@
break;
}
ExReleaseFastMutex(&Ccb->DataListLock);
+
if (IoIsOperationSynchronous(Irp))
{
/* Wait for ReadEvent to become signaled */
@@ -448,8 +449,7 @@
Irp->RequestorMode,
FALSE,
NULL);
- DPRINT("Finished waiting (%wZ)! Status: %x\n", &Ccb->Fcb->PipeName, Status);
- ExAcquireFastMutex(&Ccb->DataListLock);
+ DPRINT("Finished waiting (%wZ)! Status: %x\n", &Ccb->Fcb->PipeName, Status);
if ((Status == STATUS_USER_APC) || (Status == STATUS_KERNEL_APC))
{
@@ -460,6 +460,7 @@
{
ASSERT(FALSE);
}
+ ExAcquireFastMutex(&Ccb->DataListLock);
}
else
{
@@ -526,26 +527,25 @@
DPRINT("Message mode\n");
/* For Message mode, the Message length will be stored in the buffer preceeding the Message. */
-
if (Ccb->ReadDataAvailable)
{
ULONG NextMessageLength=0;
//HexDump(Ccb->Data, (ULONG)Ccb->WritePtr - (ULONG)Ccb->Data);
-
/*First get the size of the message */
memcpy(&NextMessageLength, Ccb->Data, sizeof(NextMessageLength));
-
- if (NextMessageLength == 0)
+ if ((NextMessageLength == 0) || (NextMessageLength > Ccb->ReadDataAvailable))
{
DPRINT1("This should never happen! Possible memory corruption.\n");
#ifndef NDEBUG
HexDump(Ccb->Data, (ULONG)Ccb->WritePtr - (ULONG)Ccb->Data);
#endif
- break;
+ ASSERT(FALSE);
}
/* Use the smaller value */
+
CopyLength = min(NextMessageLength, Length);
+
/* retrieve the message from the buffer */
memcpy(Buffer, (PVOID)((ULONG)Ccb->Data + sizeof(NextMessageLength)), CopyLength);
@@ -558,6 +558,7 @@
/* Calculate the remaining message new size */
ULONG NewMessageSize = NextMessageLength-CopyLength;
+
/* Write a new Message size to buffer for the part of the message still there */
memcpy(Ccb->Data, &NewMessageSize, sizeof(NewMessageSize));
@@ -568,10 +569,15 @@
/* Update the write pointer */
Ccb->WritePtr = (PVOID)((ULONG)Ccb->WritePtr - CopyLength);
+
+ /* Add CopyLength only to WriteQuotaAvailable as the
+ Message Size was replaced in the buffer */
+ Ccb->WriteQuotaAvailable += CopyLength;
}
else
{
/* Client wanted the entire message */
+
/* Move the memory starting from the next Message just retrieved */
memmove(Ccb->Data,
(PVOID)((ULONG_PTR) Ccb->Data + NextMessageLength + sizeof(NextMessageLength)),
@@ -579,14 +585,24 @@
/* Update the write pointer */
Ccb->WritePtr = (PVOID)((ULONG)Ccb->WritePtr - NextMessageLength);
+
+ /* Add both the message length and the header to the WriteQuotaAvailable
+ as they both were removed */
+ Ccb->WriteQuotaAvailable += (CopyLength + sizeof(NextMessageLength));
}
}
else
{
/* This was the last Message, so just zero this messages for safety sake */
memset(Ccb->Data,0,NextMessageLength + sizeof(NextMessageLength));
- /* reset the write pointer */
+
+ /* reset the write pointer to beginning of buffer */
Ccb->WritePtr = Ccb->Data;
+
+ /* Add both the message length and the header to the WriteQuotaAvailable
+ as they both were removed */
+ Ccb->WriteQuotaAvailable += (CopyLength + sizeof(ULONG));
+
KeResetEvent(&Ccb->ReadEvent);
if (Ccb->PipeState == FILE_PIPE_CONNECTED_STATE)
{
@@ -599,8 +615,10 @@
#endif
Information += CopyLength;
- Ccb->WriteQuotaAvailable +=CopyLength;
+
Ccb->ReadDataAvailable -= CopyLength;
+
+ if ((ULONG)Ccb->WriteQuotaAvailable > (ULONG)Ccb->MaxDataLength) ASSERT(FALSE);
}
if (Information > 0)
@@ -700,7 +718,7 @@
if (Irp->MdlAddress == NULL)
{
- DPRINT("Irp->MdlAddress == NULL\n");
+ DPRINT1("Irp->MdlAddress == NULL\n");
Status = STATUS_UNSUCCESSFUL;
Length = 0;
goto done;
@@ -708,7 +726,7 @@
if (ReaderCcb == NULL)
{
- DPRINT("Pipe is NOT connected!\n");
+ DPRINT1("Pipe is NOT connected!\n");
if (Ccb->PipeState == FILE_PIPE_LISTENING_STATE)
Status = STATUS_PIPE_LISTENING;
else if (Ccb->PipeState == FILE_PIPE_DISCONNECTED_STATE)
@@ -721,7 +739,7 @@
if (ReaderCcb->Data == NULL)
{
- DPRINT("Pipe is NOT writable!\n");
+ DPRINT1("Pipe is NOT writable!\n");
Status = STATUS_UNSUCCESSFUL;
Length = 0;
goto done;
@@ -738,7 +756,7 @@
while(1)
{
- if (ReaderCcb->WriteQuotaAvailable == 0)
+ if ((ReaderCcb->WriteQuotaAvailable == 0))
{
KeSetEvent(&ReaderCcb->ReadEvent, IO_NO_INCREMENT, FALSE);
if (Ccb->PipeState != FILE_PIPE_CONNECTED_STATE)
@@ -749,14 +767,14 @@
}
ExReleaseFastMutex(&ReaderCcb->DataListLock);
- DPRINT("Waiting for buffer space (%S)\n", Fcb->PipeName.Buffer);
+ DPRINT("Write Waiting for buffer space (%S)\n", Fcb->PipeName.Buffer);
Status = KeWaitForSingleObject(&Ccb->WriteEvent,
UserRequest,
Irp->RequestorMode,
FALSE,
NULL);
- DPRINT("Finished waiting (%S)! Status: %x\n", Fcb->PipeName.Buffer, Status);
-
+ DPRINT("Write Finished waiting (%S)! Status: %x\n", Fcb->PipeName.Buffer, Status);
+ ExAcquireFastMutex(&ReaderCcb->DataListLock);
if ((Status == STATUS_USER_APC) || (Status == STATUS_KERNEL_APC))
{
Status = STATUS_CANCELLED;
@@ -777,8 +795,6 @@
// ExReleaseFastMutex(&ReaderCcb->DataListLock);
goto done;
}
-
- ExAcquireFastMutex(&ReaderCcb->DataListLock);
}
if (Fcb->WriteMode == FILE_PIPE_BYTE_STREAM_MODE)
@@ -825,21 +841,41 @@
{
/* For Message Type Pipe, the Pipes memory will be used to store the size of each message */
/* FIXME: Check and verify ReadMode ByteStream */
- DPRINT("Message mode\n");
+
if (Length > 0)
{
- CopyLength = min(Length, ReaderCcb->WriteQuotaAvailable);
+ /* Verify the WritePtr is still inside the buffer */
+ if (((ULONG)ReaderCcb->WritePtr > ((ULONG)ReaderCcb->Data + (ULONG)ReaderCcb->MaxDataLength)) ||
+ ((ULONG)ReaderCcb->WritePtr < (ULONG)ReaderCcb->Data))
+ {
+ DPRINT1("NPFS is writing out of its buffer. Report to developer!\n");
+ DPRINT1("ReaderCcb->WritePtr %x, ReaderCcb->Data %x, ReaderCcb->MaxDataLength%d\n",
+ ReaderCcb->WritePtr,ReaderCcb->Data,ReaderCcb->MaxDataLength);
+ ASSERT(FALSE);
+ }
+
+ CopyLength = min(Length, ReaderCcb->WriteQuotaAvailable - sizeof(ULONG));
+
/* First Copy the Length of the message into the pipes buffer */
memcpy(ReaderCcb->WritePtr, &CopyLength, sizeof(CopyLength));
+
/* Now the user buffer itself */
memcpy((PVOID)((ULONG)ReaderCcb->WritePtr+ sizeof(CopyLength)), Buffer, CopyLength);
+
/* Update the write pointer */
ReaderCcb->WritePtr = (PVOID)((ULONG)ReaderCcb->WritePtr + sizeof(CopyLength) + CopyLength);
Information += CopyLength;
ReaderCcb->ReadDataAvailable += CopyLength;
- ReaderCcb->WriteQuotaAvailable -= CopyLength;
+
+ ReaderCcb->WriteQuotaAvailable -= (CopyLength + sizeof(ULONG));
+
+ if ((ULONG)ReaderCcb->WriteQuotaAvailable > (ULONG)ReaderCcb->MaxDataLength)
+ {
+ DPRINT1("QuotaAvailable is greater than buffer size!\n");
+ ASSERT(FALSE);
+ }
}
if (Information > 0)
Author: dreimer
Date: Sat Jan 10 18:21:59 2009
New Revision: 38691
URL: http://svn.reactos.org/svn/reactos?rev=38691&view=rev
Log:
German Translation of hdwwiz.
Modified:
trunk/reactos/dll/cpl/hdwwiz/lang/de-DE.rc
Modified: trunk/reactos/dll/cpl/hdwwiz/lang/de-DE.rc
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/hdwwiz/lang/de-DE.…
==============================================================================
--- trunk/reactos/dll/cpl/hdwwiz/lang/de-DE.rc [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/hdwwiz/lang/de-DE.rc [iso-8859-1] Sat Jan 10 18:21:59 2009
@@ -2,21 +2,21 @@
IDD_STARTPAGE DIALOG DISCARDABLE 0, 0, 317, 186
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Welcome to the Add Hardware Wizard", IDC_FINISHTITLE, 114, 8, 203, 24
- LTEXT "This wizard helps you:", -1, 114, 40, 182, 8
- LTEXT "1) Install software to support the hardware you add to your computer.", -1, 121, 56, 184, 16
- LTEXT "2) Troubleshoot problems you may be having with your hardware.", -1, 121, 78, 185, 16
+ LTEXT "Wilkommen zum Hardware Assistenten", IDC_FINISHTITLE, 114, 8, 203, 24
+ LTEXT "Dieser Assistent unterstützt Sie bei:", -1, 114, 40, 182, 8
+ LTEXT "1) Software installieren, um die an den Computer angeschlossene Hardware zu unterstützen.", -1, 121, 56, 184, 16
+ LTEXT "2) Probleme lösen, die Sie mit Ihrer Hardware haben.", -1, 121, 78, 185, 16
ICON IDI_WARNINGICON, IDC_WARNINGICON, 124, 109, 20, 20
- LTEXT "If your hardware came with an installation CD, it is recommended that you click Cancel to close this wizard and use the manufacturer's CD to install this hardware.", 503, 150, 106, 155, 50
- LTEXT "To continue, click Next.", -1, 114, 166, 193, 8
+ LTEXT "Falls die Hardware mit einer Installations CD geliefert wurde, ist es empfehlenswert den Assistenten zu beenden und die Installations CD des Anbieters zu verwenden.", 503, 150, 106, 155, 50
+ LTEXT "Klicken Sie ""Weiter"", um fortzufahren.", -1, 114, 166, 193, 8
END
IDD_SEARCHPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "", IDC_STATUSTEXT, 21, 8, 275, 32
@@ -25,63 +25,63 @@
IDD_ISCONNECTEDPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Have you already connected this hardware to your computer?", -1, 20, 11, 275, 8
- AUTORADIOBUTTON "&Yes, I have already connected the hardware", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP
- AUTORADIOBUTTON "&No, I have not added the hardware yet", IDC_NOTCONNECTED, 29, 35, 266, 8
+ LTEXT "Ist die Hardware bereits am Computer angeschlossen?", -1, 20, 11, 275, 8
+ AUTORADIOBUTTON "&Ja, die Hardware ist bereits angeschlossen", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP
+ AUTORADIOBUTTON "&Nein, die Hardware ist noch nicht angeschlossen", IDC_NOTCONNECTED, 29, 35, 266, 8
END
IDD_PROBELISTPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "From the list below, select an installed hardware device, then click Next to check properties or troubleshoot a problem you might be having.", -1, 21, 8, 275, 22
- LTEXT "To add hardware not shown in the list, click ""Add a new hardware device.""", -1, 21, 32, 275, 24
- LTEXT "I&nstalled hardware:", -1, 21, 62, 140, 8
+ LTEXT "Wählen Sie aus der Liste ein installiertes Gerät aus und klicken Sie auf ""Weiter"", um die Einstellungen zu überprüfen und mögliche Probleme zu lösen.", -1, 21, 8, 275, 22
+ LTEXT "Um Hardware zu installieren, die nicht in der Liste aufgelistet ist, klicken Sie ""Neue Hardware hinzufügen.""", -1, 21, 32, 275, 24
+ LTEXT "I&nstallierte Hardware:", -1, 21, 62, 140, 8
CONTROL "", IDC_PROBELIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_NOCOLUMNHEADER, 21, 72, 275, 66
END
IDD_SELECTWAYPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "The wizard can search for other hardware and automatically install it for you. Or, if you know exactly which hardware model you want to install, you can select it from a list.", -1, 21, 8, 280, 24
- LTEXT "What do you want the wizard to do?", -1, 23, 40, 275, 8
- AUTORADIOBUTTON "&Search for and install the hardware automatically (Recommended)", IDC_AUTOINSTALL, 30, 55, 266, 8, WS_GROUP | NOT WS_TABSTOP
- AUTORADIOBUTTON "Install the hardware that I &manually select from a list (Advanced)", IDC_MANUALLYINST, 30, 70, 266, 8, NOT WS_TABSTOP
+ LTEXT "Der Assistent kann automatisch Hardware suchen und diese installieren. Oder, falls Sie das zu installierende Gerät genau kennen, können Sie es aus der Liste auswählen.", -1, 21, 8, 280, 24
+ LTEXT "Wie wollen Sie den Assistenten fortsetzen?", -1, 23, 40, 275, 8
+ AUTORADIOBUTTON "Automatisch nach neuer Hardware &suchen und installieren (empfohlen)", IDC_AUTOINSTALL, 30, 55, 266, 8, WS_GROUP | NOT WS_TABSTOP
+ AUTORADIOBUTTON "&Manuell aus der Liste ausgewählte Hardware installieren (erweitert)", IDC_MANUALLYINST, 30, 70, 266, 8, NOT WS_TABSTOP
END
IDD_DETECTEDHWPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "", IDC_STATUSTEXT, 21, 9, 275, 40
- LTEXT "Detected hardware:", IDC_DETECTEDHWTEXT, 21, 53, 176, 8
+ LTEXT "Erkannte Hardware:", IDC_DETECTEDHWTEXT, 21, 53, 176, 8
CONTROL "", IDC_DETECTEDHWLIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 21, 65, 275, 70
END
IDD_HWTYPESPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "If you do not see the hardware category you want, click Show All Devices.", IDC_STATUSTEXT, 21, 9, 275, 18
- LTEXT "Common &hardware types:", IDC_HWTYPESTEXT, 21, 31, 180, 8
+ LTEXT "Wenn Sie die Hardwarekategorie, die Sie benötigen nicht finden, wählen Sie ""Alle Geräte"".", IDC_STATUSTEXT, 21, 9, 275, 18
+ LTEXT "Bekannte &Hardware Typen:", IDC_HWTYPESTEXT, 21, 31, 180, 8
CONTROL "", IDC_HWTYPESLIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 21, 42, 275, 92
END
IDD_PROGRESSPAGE DIALOG DISCARDABLE 0, 0, 317, 143
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "It may take several minutes to search for hardware.", -1, 21, 8, 275, 15
- LTEXT "Total progress:", IDC_TPROGRESSTEXT, 21, 25, 275, 8
+ LTEXT "Der Hardware Suchvorgang kann mehere Minuten dauern.", -1, 21, 8, 275, 15
+ LTEXT "Fortschitt:", IDC_TPROGRESSTEXT, 21, 25, 275, 8
CONTROL "", IDC_TPROGRESSBAR, "msctls_progress32", 0, 21, 37, 275, 14
LTEXT "", IDC_PROGRESSTEXT, 58, 58, 200, 8, SS_NOPREFIX
CONTROL "", IDC_PROGRESSBAR, "msctls_progress32", 0, 58, 70, 200, 8
@@ -89,58 +89,58 @@
IDD_FINISHPAGE DIALOG DISCARDABLE 0, 0, 317, 186
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Completing the Add Hardware Wizard", IDC_FINISHTITLE, 114, 8, 203, 24
- LTEXT "You have successfully completed the Add Hardware wizard.", -1, 114, 32, 193, 19
+ LTEXT "Hardware Assistent wird vervollständigt", IDC_FINISHTITLE, 114, 8, 203, 24
+ LTEXT "Der Hardware Assistent wurde erfolgreich abgeschlossen.", -1, 114, 32, 193, 19
LTEXT "", IDC_STATUSTEXT, 114, 70, 193, 92
- LTEXT "To close this wizard, click Finish.", -1, 114, 166, 132, 8
+ LTEXT "Klicken Sie ""Beenden"", um den Assistenten zu schliessen.", -1, 114, 166, 192, 8
END
IDD_ISFOUNDPAGE DIALOG DISCARDABLE 0, 0, 317, 186
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Completing the Add Hardware Wizard", IDC_FINISHTITLE, 114, 8, 203, 24
- LTEXT "The wizard found the following hardware connected to your computer:", -1, 114, 32, 193, 19
- LTEXT "To close this wizard, click Finish.", -1, 114, 166, 132, 8
+ LTEXT "Hardware Assistent wird vervollständigt", IDC_FINISHTITLE, 114, 8, 203, 24
+ LTEXT "Der Assistent fand folgende Hardware an ihrem Computer:", -1, 114, 32, 193, 19
+ LTEXT "Klicken Sie ""Beenden"", um den Assistenten zu schliessen.", -1, 114, 166, 132, 8
CONTROL "", IDC_FOUNDHARDWARELIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 114, 56, 193, 78
END
IDD_HWSTATUSPAGE DIALOG DISCARDABLE 0, 0, 317, 186
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Completing the Add Hardware Wizard", IDC_FINISHTITLE, 114, 8, 195, 28
- LTEXT "Here is the current status of the hardware you selected:", -1, 114, 40, 193, 19
+ LTEXT "Hardware Assistent wird vervollständigt", IDC_FINISHTITLE, 114, 8, 195, 28
+ LTEXT "Derzeitiger Status der ausgewählten Hardware:", -1, 114, 40, 193, 19
EDITTEXT IDC_HWSTATUSEDIT, 114, 60, 193, 70, ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP
- LTEXT "To start a troubleshooter that can help you resolve any problems you might be having, click Finish.", -1, 114, 136, 193, 16
- LTEXT "To exit this wizard, click Cancel.", IDC_STATUSTEXT, 114, 166, 132, 8
+ LTEXT "Klicken Sie ""Beenden"", um Hilfe zum Lösen von möglichen Problemen zu erhalten.", -1, 114, 136, 193, 16
+ LTEXT "Klicken Sie ""Abbrechen"", um den Assistenden zu schliessen.", IDC_STATUSTEXT, 114, 166, 200, 8
END
IDD_NOTCONNECTEDPAGE DIALOG DISCARDABLE 0, 0, 317, 186
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Add Hardware Wizard"
+CAPTION "Hardware Assistent"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Cannot Continue the Add Hardware Wizard", IDC_FINISHTITLE, 114, 8, 203, 28
- LTEXT "To continue, connect this hardware to your computer.", -1, 114, 40, 193, 16
- AUTOCHECKBOX "&Turn off the computer when I click Finish so that I can open the computer and connect the hardware.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE
- LTEXT "In most cases ReactOS will automatically install your hardware after you connect it. If ReactOS does not find it, you can reopen this wizard to install the supporting software.", -1, 114, 98, 193, 32
- LTEXT "To close this wizard, click Finish.", IDC_STATUSTEXT, 114, 166, 193, 8
+ LTEXT "Hardware Assistent kann nicht fortgesetzt werden", IDC_FINISHTITLE, 114, 8, 203, 28
+ LTEXT "Um fortsetzen zu können, verbinden Sie folgende Hardware mit dem Computer.", -1, 114, 40, 193, 16
+ AUTOCHECKBOX "&Nach Beenden den Computer neustarten, um die Hardware anschliessen zu können.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE
+ LTEXT "In den meisten Fällen wird ReactOS die Hardware automatisch installieren, wenn Sie sie mit dem Computer verbinden. Andernfalls können Sie den Assistenten erneut starten, um die zu unterstützende Hardware zu installieren.", -1, 114, 98, 193, 32
+ LTEXT "Klicken Sie auf ""Beenden"", um den Assistenten zu schliessen.", IDC_STATUSTEXT, 114, 166, 200, 8
END
STRINGTABLE
BEGIN
IDS_CPLNAME "Hardware"
IDS_CPLDESCRIPTION "Installiert neue Hardwarekomponenten."
- IDS_SEARCHTITLE "Please wait while the wizard searches..."
- IDS_SEARCHTEXT "This wizard is searching for hardware that has been connected to your computer recently but has not yet been installed."
- IDS_ISCONNECTED "Is the hardware connected?"
- IDS_PROBELISTTITLE "The following hardware is already installed on your computer"
- IDS_ADDNEWDEVICE "Add a new hardware device"
- IDS_SELECTWAYTITLE "The wizard can help you install other hardware"
+ IDS_SEARCHTITLE "Bitte warten Sie, während der Assistent neue Hardware sucht..."
+ IDS_SEARCHTEXT "Dieser Assistent sucht nach Hardware, die vor kurzem an Ihren Computer angeschlossen, aber noch nicht installiert wurde."
+ IDS_ISCONNECTED "Ist die Hardware bereits verbunden?"
+ IDS_PROBELISTTITLE "Folgende Hardware ist bereits auf Ihrem Computer installiert"
+ IDS_ADDNEWDEVICE "Ein neues Gerät hinzufügen"
+ IDS_SELECTWAYTITLE "Der Assistent kann Sie bei der Installation anderer Hardware unterstützen"
END