*/
/* FIXME: call IoAcquireRemoveLock/IoReleaseRemoveLock around each I/O operation */
-#define INITGUID
#include "serial.h"
+#include <stdio.h>
+#include <ndk/haltypes.h>
+#include <debug.h>
+
NTSTATUS NTAPI
SerialAddDeviceInternal(
IN PDRIVER_OBJECT DriverObject,
NTSTATUS Status;
WCHAR DeviceNameBuffer[32];
UNICODE_STRING DeviceName;
- static ULONG DeviceNumber = 0;
- static ULONG ComPortNumber = 1;
TRACE_(SERIAL, "SerialAddDeviceInternal()\n");
ASSERT(Pdo);
/* Create new device object */
- swprintf(DeviceNameBuffer, L"\\Device\\Serial%lu", DeviceNumber);
+ swprintf(DeviceNameBuffer, L"\\Device\\Serial%lu", IoGetConfigurationInformation()->SerialCount);
RtlInitUnicodeString(&DeviceName, DeviceNameBuffer);
Status = IoCreateDevice(DriverObject,
sizeof(SERIAL_DEVICE_EXTENSION),
goto ByeBye;
}
- DeviceExtension->SerialPortNumber = DeviceNumber++;
+ DeviceExtension->SerialPortNumber = IoGetConfigurationInformation()->SerialCount++;
if (pComPortNumber == NULL)
- DeviceExtension->ComPort = ComPortNumber++;
+ DeviceExtension->ComPort = DeviceExtension->SerialPortNumber + 1;
else
DeviceExtension->ComPort = *pComPortNumber;
DeviceExtension->Pdo = Pdo;
DeviceExtension = (PSERIAL_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
- ASSERT(ResourceList);
ASSERT(DeviceExtension);
- ASSERT(DeviceExtension->PnpState == dsStopped);
if (!ResourceList)
{