mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[PROCESSR]
Add a generic processor driver that does nothing but provide a proper CPU device name (FriendlyName) to the registry. CORE-5960 #resolve svn path=/trunk/; revision=73967
This commit is contained in:
parent
b097d7ad0e
commit
77b88b38af
9 changed files with 704 additions and 52 deletions
|
@ -14,6 +14,7 @@ add_subdirectory(input)
|
|||
add_subdirectory(ksfilter)
|
||||
add_subdirectory(network)
|
||||
add_subdirectory(parallel)
|
||||
add_subdirectory(processor)
|
||||
add_subdirectory(sac)
|
||||
add_subdirectory(serial)
|
||||
add_subdirectory(setup)
|
||||
|
|
2
reactos/drivers/processor/CMakeLists.txt
Normal file
2
reactos/drivers/processor/CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
add_subdirectory(processr)
|
12
reactos/drivers/processor/processr/CMakeLists.txt
Normal file
12
reactos/drivers/processor/processr/CMakeLists.txt
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
list(APPEND SOURCE
|
||||
processr.c
|
||||
misc.c
|
||||
pnp.c
|
||||
processr.h)
|
||||
|
||||
add_library(processr SHARED ${SOURCE} processr.rc)
|
||||
set_module_type(processr kernelmodedriver)
|
||||
add_importlibs(processr hal ntoskrnl)
|
||||
add_pch(processr processr.h SOURCE)
|
||||
add_cd_file(TARGET processr DESTINATION reactos/system32/drivers FOR all)
|
81
reactos/drivers/processor/processr/misc.c
Normal file
81
reactos/drivers/processor/processr/misc.c
Normal file
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Generic CPU Driver
|
||||
* LICENSE: GNU GPLv2 only as published by the Free Software Foundation
|
||||
* FILE: drivers/processor/processr/misc.c
|
||||
* PURPOSE: Misc routines
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include "processr.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
static IO_COMPLETION_ROUTINE ForwardIrpAndWaitCompletion;
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ForwardIrpAndWaitCompletion(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp,
|
||||
IN PVOID Context)
|
||||
{
|
||||
if (Irp->PendingReturned)
|
||||
KeSetEvent((PKEVENT)Context, IO_NO_INCREMENT, FALSE);
|
||||
|
||||
return STATUS_MORE_PROCESSING_REQUIRED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ForwardIrpAndWait(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
PDEVICE_OBJECT LowerDevice;
|
||||
KEVENT Event;
|
||||
NTSTATUS Status;
|
||||
|
||||
LowerDevice = ((PDEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice;
|
||||
ASSERT(LowerDevice);
|
||||
|
||||
KeInitializeEvent(&Event, NotificationEvent, FALSE);
|
||||
IoCopyCurrentIrpStackLocationToNext(Irp);
|
||||
|
||||
DPRINT("Calling lower device %p\n", LowerDevice);
|
||||
IoSetCompletionRoutine(Irp, ForwardIrpAndWaitCompletion, &Event, TRUE, TRUE, TRUE);
|
||||
|
||||
Status = IoCallDriver(LowerDevice, Irp);
|
||||
if (Status == STATUS_PENDING)
|
||||
{
|
||||
Status = KeWaitForSingleObject(&Event, Suspended, KernelMode, FALSE, NULL);
|
||||
if (NT_SUCCESS(Status))
|
||||
Status = Irp->IoStatus.Status;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ForwardIrpAndForget(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
PDEVICE_OBJECT LowerDevice;
|
||||
|
||||
LowerDevice = ((PDEVICE_EXTENSION)DeviceObject->DeviceExtension)->LowerDevice;
|
||||
ASSERT(LowerDevice);
|
||||
|
||||
IoSkipCurrentIrpStackLocation(Irp);
|
||||
return IoCallDriver(LowerDevice, Irp);
|
||||
}
|
||||
|
||||
/* EOF */
|
402
reactos/drivers/processor/processr/pnp.c
Normal file
402
reactos/drivers/processor/processr/pnp.c
Normal file
|
@ -0,0 +1,402 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Generic CPU Driver
|
||||
* LICENSE: GNU GPLv2 only as published by the Free Software Foundation
|
||||
* FILE: drivers/processor/processr/pnp.c
|
||||
* PURPOSE: Plug N Play routines
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include "processr.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
GetDeviceId(
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
BUS_QUERY_ID_TYPE IdType,
|
||||
PWSTR *DeviceId)
|
||||
{
|
||||
PIO_STACK_LOCATION IrpStack;
|
||||
IO_STATUS_BLOCK IoStatus;
|
||||
PDEVICE_OBJECT TargetObject;
|
||||
KEVENT Event;
|
||||
PIRP Irp;
|
||||
NTSTATUS Status;
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
/* Initialize the event */
|
||||
KeInitializeEvent(&Event, NotificationEvent, FALSE);
|
||||
|
||||
TargetObject = IoGetAttachedDeviceReference(DeviceObject);
|
||||
|
||||
/* Build the IRP */
|
||||
Irp = IoBuildSynchronousFsdRequest(IRP_MJ_PNP,
|
||||
TargetObject,
|
||||
NULL,
|
||||
0,
|
||||
NULL,
|
||||
&Event,
|
||||
&IoStatus);
|
||||
if (Irp == NULL)
|
||||
{
|
||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* PNP IRPs all begin life as STATUS_NOT_SUPPORTED */
|
||||
Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
|
||||
|
||||
/* Get the top of stack */
|
||||
IrpStack = IoGetNextIrpStackLocation(Irp);
|
||||
|
||||
/* Set the top of stack */
|
||||
RtlZeroMemory(IrpStack, sizeof(IO_STACK_LOCATION));
|
||||
IrpStack->MajorFunction = IRP_MJ_PNP;
|
||||
IrpStack->MinorFunction = IRP_MN_QUERY_ID;
|
||||
IrpStack->Parameters.QueryId.IdType = IdType;
|
||||
|
||||
/* Call the driver */
|
||||
Status = IoCallDriver(TargetObject, Irp);
|
||||
if (Status == STATUS_PENDING)
|
||||
{
|
||||
KeWaitForSingleObject(&Event,
|
||||
Executive,
|
||||
KernelMode,
|
||||
FALSE,
|
||||
NULL);
|
||||
|
||||
Status = IoStatus.Status;
|
||||
}
|
||||
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
*DeviceId = (PWSTR)IoStatus.Information;
|
||||
}
|
||||
|
||||
done:
|
||||
/* Dereference the target device object */
|
||||
ObDereferenceObject(TargetObject);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
ProcessorSetFriendlyName(
|
||||
PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
KEY_VALUE_PARTIAL_INFORMATION *Buffer = NULL;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING HardwareKeyName, ValueName, EnumKeyName;
|
||||
HANDLE KeyHandle = NULL;
|
||||
ULONG DataLength = 0;
|
||||
ULONG BufferLength = 0;
|
||||
NTSTATUS Status;
|
||||
PWSTR KeyNameBuffer = NULL;
|
||||
PWSTR DeviceId = NULL;
|
||||
PWSTR InstanceId = NULL;
|
||||
PWSTR pszPrefix = L"\\Registry\\Machine\\System\\CurrentcontrolSet\\Enum";
|
||||
|
||||
RtlInitUnicodeString(&HardwareKeyName,
|
||||
L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&HardwareKeyName,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
|
||||
NULL,
|
||||
NULL);
|
||||
Status = ZwOpenKey(&KeyHandle,
|
||||
KEY_READ,
|
||||
&ObjectAttributes);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("ZwOpenKey() failed (Status 0x%08lx)\n", Status);
|
||||
return;
|
||||
}
|
||||
|
||||
RtlInitUnicodeString(&ValueName,
|
||||
L"ProcessorNameString");
|
||||
Status = ZwQueryValueKey(KeyHandle,
|
||||
&ValueName,
|
||||
KeyValuePartialInformation,
|
||||
NULL,
|
||||
0,
|
||||
&DataLength);
|
||||
if (Status != STATUS_BUFFER_OVERFLOW && Status != STATUS_BUFFER_TOO_SMALL && Status != STATUS_SUCCESS)
|
||||
{
|
||||
DPRINT1("ZwQueryValueKey() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
Buffer = ExAllocatePool(PagedPool,
|
||||
DataLength + sizeof(KEY_VALUE_PARTIAL_INFORMATION));
|
||||
if (Buffer == NULL)
|
||||
{
|
||||
DPRINT1("ExAllocatePool() failed\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
Status = ZwQueryValueKey(KeyHandle,
|
||||
&ValueName,
|
||||
KeyValuePartialInformation,
|
||||
Buffer,
|
||||
DataLength + sizeof(KEY_VALUE_PARTIAL_INFORMATION),
|
||||
&DataLength);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("ZwQueryValueKey() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
DPRINT("ProcessorNameString: %S\n", (PWSTR)&Buffer->Data[0]);
|
||||
|
||||
ZwClose(KeyHandle);
|
||||
KeyHandle = NULL;
|
||||
|
||||
Status = GetDeviceId(DeviceObject,
|
||||
BusQueryDeviceID,
|
||||
&DeviceId);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("GetDeviceId() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
DPRINT("DeviceId: %S\n", DeviceId);
|
||||
|
||||
Status = GetDeviceId(DeviceObject,
|
||||
BusQueryInstanceID,
|
||||
&InstanceId);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("GetDeviceId() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
DPRINT("InstanceId: %S\n", InstanceId);
|
||||
|
||||
BufferLength = wcslen(pszPrefix) + 1 + wcslen(DeviceId) + 1 + wcslen(InstanceId) + 1;
|
||||
|
||||
KeyNameBuffer = ExAllocatePool(PagedPool, BufferLength * sizeof(WCHAR));
|
||||
if (KeyNameBuffer == NULL)
|
||||
{
|
||||
DPRINT1("ExAllocatePool() failed\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
swprintf(KeyNameBuffer, L"%s\\%s\\%s", pszPrefix, DeviceId, InstanceId);
|
||||
|
||||
RtlInitUnicodeString(&EnumKeyName, KeyNameBuffer);
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&EnumKeyName,
|
||||
OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
|
||||
NULL,
|
||||
NULL);
|
||||
Status = ZwOpenKey(&KeyHandle,
|
||||
KEY_WRITE,
|
||||
&ObjectAttributes);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("ZwOpenKey() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
RtlInitUnicodeString(&ValueName,
|
||||
L"FriendlyName");
|
||||
Status = ZwSetValueKey(KeyHandle,
|
||||
&ValueName,
|
||||
0,
|
||||
REG_SZ,
|
||||
(PVOID)&Buffer->Data[0],
|
||||
Buffer->DataLength);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("ZwSetValueKey() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
done:
|
||||
if (KeyHandle != NULL)
|
||||
ZwClose(KeyHandle);
|
||||
|
||||
if (KeyNameBuffer != NULL)
|
||||
ExFreePool(KeyNameBuffer);
|
||||
|
||||
if (InstanceId != NULL)
|
||||
ExFreePool(InstanceId);
|
||||
|
||||
if (DeviceId != NULL)
|
||||
ExFreePool(DeviceId);
|
||||
|
||||
if (Buffer != NULL)
|
||||
ExFreePool(Buffer);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
ProcessorStartDevice(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PCM_RESOURCE_LIST ResourceList,
|
||||
IN PCM_RESOURCE_LIST ResourceListTranslated)
|
||||
{
|
||||
DPRINT("ProcessorStartDevice()\n");
|
||||
|
||||
ProcessorSetFriendlyName(DeviceObject);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ProcessorPnp(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
PIO_STACK_LOCATION IrpSp;
|
||||
ULONG_PTR Information = 0;
|
||||
NTSTATUS Status = STATUS_NOT_SUPPORTED;
|
||||
|
||||
DPRINT("ProcessorPnp()\n");
|
||||
|
||||
IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
||||
|
||||
switch (IrpSp->MinorFunction)
|
||||
{
|
||||
case IRP_MN_START_DEVICE:
|
||||
DPRINT(" IRP_MN_START_DEVICE received\n");
|
||||
|
||||
/* Call lower driver */
|
||||
Status = ForwardIrpAndWait(DeviceObject, Irp);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
Status = ProcessorStartDevice(DeviceObject,
|
||||
IrpSp->Parameters.StartDevice.AllocatedResources,
|
||||
IrpSp->Parameters.StartDevice.AllocatedResourcesTranslated);
|
||||
}
|
||||
break;
|
||||
|
||||
case IRP_MN_QUERY_REMOVE_DEVICE:
|
||||
DPRINT(" IRP_MN_QUERY_REMOVE_DEVICE\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_REMOVE_DEVICE:
|
||||
DPRINT(" IRP_MN_REMOVE_DEVICE received\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_CANCEL_REMOVE_DEVICE:
|
||||
DPRINT(" IRP_MN_CANCEL_REMOVE_DEVICE\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_STOP_DEVICE:
|
||||
DPRINT(" IRP_MN_STOP_DEVICE received\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_QUERY_STOP_DEVICE:
|
||||
DPRINT(" IRP_MN_QUERY_STOP_DEVICE received\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_CANCEL_STOP_DEVICE:
|
||||
DPRINT(" IRP_MN_CANCEL_STOP_DEVICE\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_QUERY_DEVICE_RELATIONS:
|
||||
DPRINT(" IRP_MN_QUERY_DEVICE_RELATIONS\n");
|
||||
|
||||
switch (IrpSp->Parameters.QueryDeviceRelations.Type)
|
||||
{
|
||||
case BusRelations:
|
||||
DPRINT(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
break;
|
||||
|
||||
case RemovalRelations:
|
||||
DPRINT(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
default:
|
||||
DPRINT(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
|
||||
IrpSp->Parameters.QueryDeviceRelations.Type);
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
}
|
||||
break;
|
||||
|
||||
case IRP_MN_SURPRISE_REMOVAL:
|
||||
DPRINT(" IRP_MN_SURPRISE_REMOVAL received\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* (optional) 0xd */
|
||||
DPRINT(" IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
|
||||
default:
|
||||
DPRINT(" Unknown IOCTL 0x%lx\n", IrpSp->MinorFunction);
|
||||
return ForwardIrpAndForget(DeviceObject, Irp);
|
||||
}
|
||||
|
||||
Irp->IoStatus.Information = Information;
|
||||
Irp->IoStatus.Status = Status;
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ProcessorAddDevice(
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT Pdo)
|
||||
{
|
||||
PDEVICE_EXTENSION DeviceExtension = NULL;
|
||||
PDEVICE_OBJECT Fdo = NULL;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT("ProcessorAddDevice()\n");
|
||||
|
||||
ASSERT(DriverObject);
|
||||
ASSERT(Pdo);
|
||||
|
||||
/* Create functional device object */
|
||||
Status = IoCreateDevice(DriverObject,
|
||||
sizeof(DEVICE_EXTENSION),
|
||||
NULL,
|
||||
FILE_DEVICE_UNKNOWN,
|
||||
FILE_DEVICE_SECURE_OPEN,
|
||||
FALSE,
|
||||
&Fdo);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
DeviceExtension = (PDEVICE_EXTENSION)Fdo->DeviceExtension;
|
||||
RtlZeroMemory(DeviceExtension, sizeof(DEVICE_EXTENSION));
|
||||
|
||||
DeviceExtension->DeviceObject = Fdo;
|
||||
|
||||
Status = IoAttachDeviceToDeviceStackSafe(Fdo, Pdo, &DeviceExtension->LowerDevice);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("IoAttachDeviceToDeviceStackSafe() failed with status 0x%08lx\n", Status);
|
||||
IoDeleteDevice(Fdo);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Fdo->Flags |= DO_DIRECT_IO;
|
||||
Fdo->Flags |= DO_POWER_PAGABLE;
|
||||
|
||||
Fdo->Flags &= ~DO_DEVICE_INITIALIZING;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
/* EOF */
|
65
reactos/drivers/processor/processr/processr.c
Normal file
65
reactos/drivers/processor/processr/processr.c
Normal file
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Generic CPU Driver
|
||||
* LICENSE: GNU GPLv2 only as published by the Free Software Foundation
|
||||
* FILE: drivers/processor/processr/processr.c
|
||||
* PURPOSE: Main Driver Routines
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include "processr.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
static
|
||||
VOID
|
||||
NTAPI
|
||||
ProcessorUnload(
|
||||
IN PDRIVER_OBJECT DriverObject)
|
||||
{
|
||||
DPRINT("ProcessorUnload()\n");
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ProcessorPower(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
// PIO_STACK_LOCATION IrpSp;
|
||||
// NTSTATUS Status = Irp->IoStatus.Status;
|
||||
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
|
||||
DPRINT("ProcessorPower()\n");
|
||||
|
||||
// IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
||||
|
||||
PoStartNextPowerIrp(Irp);
|
||||
IoSkipCurrentIrpStackLocation(Irp);
|
||||
return PoCallDriver(DeviceExtension->LowerDevice, Irp);
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
DriverEntry(
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PUNICODE_STRING RegistryPath)
|
||||
{
|
||||
DPRINT("Processr: DriverEntry()\n");
|
||||
|
||||
DriverObject->MajorFunction[IRP_MJ_PNP] = ProcessorPnp;
|
||||
DriverObject->MajorFunction[IRP_MJ_POWER] = ProcessorPower;
|
||||
|
||||
DriverObject->DriverExtension->AddDevice = ProcessorAddDevice;
|
||||
DriverObject->DriverUnload = ProcessorUnload;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
51
reactos/drivers/processor/processr/processr.h
Normal file
51
reactos/drivers/processor/processr/processr.h
Normal file
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Generic CPU Driver
|
||||
* LICENSE: GNU GPLv2 only as published by the Free Software Foundation
|
||||
* FILE: drivers/processor/processr/processr.h
|
||||
* PURPOSE: Common header file
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
#ifndef _PROCESSR_PCH_
|
||||
#define _PROCESSR_PCH_
|
||||
|
||||
#include <ntddk.h>
|
||||
|
||||
typedef struct _DEVICE_EXTENSION
|
||||
{
|
||||
PDEVICE_OBJECT DeviceObject;
|
||||
PDEVICE_OBJECT LowerDevice;
|
||||
|
||||
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
|
||||
|
||||
|
||||
/* misc.c */
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ForwardIrpAndWait(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ForwardIrpAndForget(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
|
||||
/* pnp.c */
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ProcessorPnp(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ProcessorAddDevice(
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT Pdo);
|
||||
|
||||
#endif /* _PROCESSR_PCH_ */
|
13
reactos/drivers/processor/processr/processr.rc
Normal file
13
reactos/drivers/processor/processr/processr.rc
Normal file
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Generic CPU Driver
|
||||
* LICENSE: GNU GPLv2 only as published by the Free Software Foundation
|
||||
* FILE: drivers/processor/processr/processr.rc
|
||||
* PURPOSE: Resource definition file
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "Processor Device Driver\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "processr\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "processr.sys\0"
|
||||
#include <reactos/version.rc>
|
|
@ -29,74 +29,84 @@ HKR, , Icon, 0, "-28"
|
|||
%VIAMfg%=VIA
|
||||
|
||||
[Standard]
|
||||
%Processor.DeviceDesc% = NO_DRV,ACPI\Processor
|
||||
%Processor.DeviceDesc% = Processr_Inst,ACPI\Processor
|
||||
|
||||
[Cyrix]
|
||||
%CyrixProcessor.DeviceDesc% = NO_DRV,ACPI\CyrixInstead_-_x86
|
||||
%CyrixProcessor.DeviceDesc% = Processr_Inst,ACPI\CyrixInstead_-_x86
|
||||
|
||||
[Intel]
|
||||
%IntelProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_1
|
||||
%IntelProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_2
|
||||
%IntelProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_3
|
||||
%IntelMMXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_4
|
||||
%IntelMMXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_7
|
||||
%IntelMMXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_5_model_8
|
||||
%IntelPROProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_1
|
||||
%IntelP2Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_3
|
||||
%IntelP2Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_5
|
||||
%IntelP2Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_6
|
||||
%IntelP3Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_7
|
||||
%IntelP3Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_8
|
||||
%IntelMProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_9
|
||||
%IntelP3Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_10
|
||||
%IntelP3Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_11
|
||||
%IntelMProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_13
|
||||
%IntelCoreProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_14
|
||||
%IntelCoreProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_15
|
||||
%IntelCoreProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_22
|
||||
%IntelCoreProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_23
|
||||
%IntelCoreiXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_26
|
||||
%IntelAtomProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_28
|
||||
%IntelCoreiXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_30
|
||||
%IntelCoreiXProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_6_Model_37
|
||||
%IntelP4Processor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86_Family_15
|
||||
%IntelProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineIntel_-_x86
|
||||
%IntelProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_1
|
||||
%IntelProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_2
|
||||
%IntelProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_3
|
||||
%IntelMMXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_4
|
||||
%IntelMMXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_7
|
||||
%IntelMMXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_5_model_8
|
||||
%IntelPROProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_1
|
||||
%IntelP2Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_3
|
||||
%IntelP2Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_5
|
||||
%IntelP2Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_6
|
||||
%IntelP3Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_7
|
||||
%IntelP3Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_8
|
||||
%IntelMProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_9
|
||||
%IntelP3Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_10
|
||||
%IntelP3Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_11
|
||||
%IntelMProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_13
|
||||
%IntelCoreProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_14
|
||||
%IntelCoreProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_15
|
||||
%IntelCoreProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_22
|
||||
%IntelCoreProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_23
|
||||
%IntelCoreiXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_26
|
||||
%IntelAtomProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_28
|
||||
%IntelCoreiXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_30
|
||||
%IntelCoreiXProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_6_Model_37
|
||||
%IntelP4Processor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86_Family_15
|
||||
%IntelProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineIntel_-_x86
|
||||
|
||||
[AMD]
|
||||
%AMDK6Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_5_Model_7
|
||||
%AMDK62Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_5_Model_8
|
||||
%AMDK63Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_5_Model_9
|
||||
%AMDK63Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_5_Model_10
|
||||
%AMDK63Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_5_Model_13
|
||||
%AMDK7Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_6
|
||||
%AMDK8Processor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_15
|
||||
%AMDPHENProcessor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_16
|
||||
%AMDQProcessor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86_Family_17
|
||||
%AMDProcessor.DeviceDesc% = NO_DRV,ACPI\AuthenticAMD_-_x86
|
||||
%AMDK6Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_5_Model_7
|
||||
%AMDK62Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_5_Model_8
|
||||
%AMDK63Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_5_Model_9
|
||||
%AMDK63Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_5_Model_10
|
||||
%AMDK63Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_5_Model_13
|
||||
%AMDK7Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_6
|
||||
%AMDK8Processor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_15
|
||||
%AMDPHENProcessor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_16
|
||||
%AMDQProcessor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86_Family_17
|
||||
%AMDProcessor.DeviceDesc% = Processr_Inst,ACPI\AuthenticAMD_-_x86
|
||||
|
||||
[Transmeta]
|
||||
%TransmetaProcessor.DeviceDesc% = NO_DRV,ACPI\GenuineTMx86_-_x86
|
||||
%TransmetaProcessor.DeviceDesc% = Processr_Inst,ACPI\GenuineTMx86_-_x86
|
||||
|
||||
[VIA]
|
||||
%ViaNEHProcessor.DeviceDesc% = NO_DRV,ACPI\CentaurHauls_-_x86_Family_6_Model_9
|
||||
%ViaESTProcessor.DeviceDesc% = NO_DRV,ACPI\CentaurHauls_-_x86_Family_6_Model_10
|
||||
%ViaC7Processor.DeviceDesc% = NO_DRV,ACPI\CentaurHauls_-_x86_Family_6_Model_13
|
||||
%ViaNANOProcessor.DeviceDesc% = NO_DRV,ACPI\CentaurHauls_-_x86_Family_6_Model_15
|
||||
%ViaProcessor.DeviceDesc% = NO_DRV,ACPI\CentaurHauls_-_x86
|
||||
%ViaNEHProcessor.DeviceDesc% = Processr_Inst,ACPI\CentaurHauls_-_x86_Family_6_Model_9
|
||||
%ViaESTProcessor.DeviceDesc% = Processr_Inst,ACPI\CentaurHauls_-_x86_Family_6_Model_10
|
||||
%ViaC7Processor.DeviceDesc% = Processr_Inst,ACPI\CentaurHauls_-_x86_Family_6_Model_13
|
||||
%ViaNANOProcessor.DeviceDesc% = Processr_Inst,ACPI\CentaurHauls_-_x86_Family_6_Model_15
|
||||
%ViaProcessor.DeviceDesc% = Processr_Inst,ACPI\CentaurHauls_-_x86
|
||||
|
||||
;---------------------------- NO DRIVER REQ -----------------------------
|
||||
;---------------------------- Processr Driver ---------------------------
|
||||
|
||||
[NO_DRV]
|
||||
AddReg=NO_DRV.AddReg
|
||||
[Processr_Inst.NT]
|
||||
CopyFiles = Processr_Inst.CopyFiles.NT
|
||||
AddReg = Processr_Inst.AddReg.NT
|
||||
|
||||
[NO_DRV.Services]
|
||||
AddService = , 0x00000002
|
||||
[Processr_Inst.CopyFiles.NT]
|
||||
processr.sys
|
||||
|
||||
[NO_DRV.HW]
|
||||
|
||||
[NO_DRV.AddReg]
|
||||
[Processr_Inst.AddReg.NT]
|
||||
HKR,,EnumPropPages32,,"devcpux.dll,PropSheetExtProc"
|
||||
|
||||
[Processr_Inst.NT.Services]
|
||||
AddService = Processor, 0x00000002, Processr_Service_Inst
|
||||
|
||||
[Processr_Service_Inst]
|
||||
DisplayName = %Processor.ServiceDesc%
|
||||
ServiceType = 1
|
||||
StartType = 1
|
||||
ErrorControl = 1
|
||||
ServiceBinary = %12%\processr.sys
|
||||
LoadOrderGroup = Extended Base
|
||||
|
||||
;-------------------------------- STRINGS -------------------------------
|
||||
|
||||
[Strings]
|
||||
|
@ -110,6 +120,7 @@ AMDMfg = "Advanced Micro Devices"
|
|||
TransmetaMfg = "Transmeta"
|
||||
VIAMfg = "VIA"
|
||||
Processor.DeviceDesc = "Processor"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Cyrix 6x86 Processor"
|
||||
IntelProcessor.DeviceDesc = "Intel Pentium Processor"
|
||||
IntelMMXProcessor.DeviceDesc = "Intel Pentium MMX Processor"
|
||||
|
@ -139,6 +150,7 @@ ViaProcessor.DeviceDesc = "VIA Processor"
|
|||
|
||||
[Strings.0405]
|
||||
Processor.DeviceDesc = "Procesor"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Procesor Cyrix 6x86"
|
||||
IntelProcessor.DeviceDesc = "Procesor Intel Pentium"
|
||||
IntelMMXProcessor.DeviceDesc = "Procesor Intel Pentium MMX"
|
||||
|
@ -169,6 +181,7 @@ ViaProcessor.DeviceDesc = "Procesor VIA"
|
|||
[Strings.0407]
|
||||
ProcessorClassName = "Prozessoren"
|
||||
Processor.DeviceDesc = "Prozessor"
|
||||
Processor.ServiceDesc = "Prozessortreiber"
|
||||
CyrixProcessor.DeviceDesc = "Cyrix 6x86 Prozessor"
|
||||
IntelProcessor.DeviceDesc = "Intel Pentium Prozessor"
|
||||
IntelMMXProcessor.DeviceDesc = "Intel Pentium MMX Prozessor"
|
||||
|
@ -198,23 +211,27 @@ ViaProcessor.DeviceDesc = "VIA Prozessor"
|
|||
|
||||
[Strings.0408]
|
||||
Processor.DeviceDesc = "Επεξεργαστής"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Επεξεργαστής Intel"
|
||||
Standard = "Πρότυπος επεξεργαστής"
|
||||
|
||||
[Strings.0a]
|
||||
ReactOS = "Equipo de ReactOS"
|
||||
Processor.DeviceDesc = "Procesador"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Procesador Intel"
|
||||
AMDProcessor.DeviceDesc = "Procesador AMD"
|
||||
Standard = "Procesador estándar"
|
||||
|
||||
[Strings.040C]
|
||||
Processor.DeviceDesc = "Processeur"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Processeur Intel"
|
||||
Standard = "Processeur standard"
|
||||
|
||||
[Strings.0411]
|
||||
Processor.DeviceDesc = "プロセッサ"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Intel プロセッサ"
|
||||
Standard = "スタンダードプロセッサ"
|
||||
|
||||
|
@ -228,6 +245,7 @@ AMDMfg = "Advanced Micro Devices"
|
|||
TransmetaMfg = "Transmeta"
|
||||
VIAMfg = "VIA"
|
||||
Processor.DeviceDesc = "Procesor"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Procesor Cyrix 6x86"
|
||||
IntelProcessor.DeviceDesc = "Procesor Intel Pentium"
|
||||
IntelMMXProcessor.DeviceDesc = "Procesor Intel Pentium MMX"
|
||||
|
@ -257,6 +275,7 @@ ViaProcessor.DeviceDesc = "Procesor VIA"
|
|||
|
||||
[Strings.0416]
|
||||
Processor.DeviceDesc = "Processadores"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Procesador Intel"
|
||||
Standard = "Processador padrão"
|
||||
|
||||
|
@ -264,6 +283,7 @@ Standard = "Processador padrão"
|
|||
ReactOS = "Fundația ReactOS"
|
||||
ProcessorClassName = "Procesoare"
|
||||
Processor.DeviceDesc = "Procesor"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Procesor Cyrix 6x86"
|
||||
IntelProcessor.DeviceDesc = "Procesor Intel Pentium"
|
||||
IntelMMXProcessor.DeviceDesc = "Procesor Intel Pentium MMX"
|
||||
|
@ -297,6 +317,7 @@ ReactOS = "Фонд ReactOS"
|
|||
ProcessorClassName = "Процессоры"
|
||||
|
||||
Processor.DeviceDesc = "Процессор"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Cyrix 6x86 процессор"
|
||||
IntelProcessor.DeviceDesc = "Intel Pentium процессор"
|
||||
IntelMMXProcessor.DeviceDesc = "Intel Pentium MMX процессор"
|
||||
|
@ -326,6 +347,7 @@ ViaProcessor.DeviceDesc = "VIA процессор"
|
|||
|
||||
[Strings.041B]
|
||||
Processor.DeviceDesc = "Procesor"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Intel procesor"
|
||||
Standard = "Štandardný procesor"
|
||||
|
||||
|
@ -339,6 +361,7 @@ AMDMfg = "Advanced Micro Devices"
|
|||
TransmetaMfg = "Transmeta"
|
||||
VIAMfg = "VIA"
|
||||
Processor.DeviceDesc = "İşlemci"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Cyrix 6x86 İşlemci"
|
||||
IntelProcessor.DeviceDesc = "Intel Pentium İşlemci"
|
||||
IntelMMXProcessor.DeviceDesc = "Intel Pentium MMX İşlemci"
|
||||
|
@ -370,6 +393,7 @@ ViaProcessor.DeviceDesc = "VIA İşlemci"
|
|||
ReactOS = "Фонд ReactOS"
|
||||
ProcessorClassName = "Процесори"
|
||||
Processor.DeviceDesc = "Процесор"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
CyrixProcessor.DeviceDesc = "Процесор Cyrix 6x86"
|
||||
IntelProcessor.DeviceDesc = "Процесор Intel Pentium"
|
||||
IntelMMXProcessor.DeviceDesc = "Процесор Intel Pentium MMX"
|
||||
|
@ -399,5 +423,6 @@ ViaProcessor.DeviceDesc = "Процесор VIA"
|
|||
|
||||
[Strings.0427]
|
||||
Processor.DeviceDesc = "Procesorius"
|
||||
Processor.ServiceDesc = "Processor driver"
|
||||
IntelProcessor.DeviceDesc = "Intel procesorius"
|
||||
Standard = "Standartinis procesorius"
|
||||
|
|
Loading…
Reference in a new issue