From d0da55a42739c54833b6cf3d02c874d65e605e2c Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 15 Nov 2004 11:41:33 +0000 Subject: [PATCH] Add support for FILE_AUTOGENERATED_DEVICE_NAME to IoCreateDevice. svn path=/trunk/; revision=11664 --- reactos/ntoskrnl/io/device.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/io/device.c b/reactos/ntoskrnl/io/device.c index eba6c987cab..aa2cd61583f 100644 --- a/reactos/ntoskrnl/io/device.c +++ b/reactos/ntoskrnl/io/device.c @@ -1,4 +1,4 @@ -/* $Id: device.c,v 1.83 2004/11/06 04:12:59 ion Exp $ +/* $Id: device.c,v 1.84 2004/11/15 11:41:33 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -19,6 +19,8 @@ #define TAG_DEVICE_EXTENSION TAG('D', 'E', 'X', 'T') +static ULONG IopDeviceObjectNumber = 0; + /* PRIVATE FUNCTIONS **********************************************************/ NTSTATUS FASTCALL @@ -532,6 +534,8 @@ IoCreateDevice( BOOLEAN Exclusive, PDEVICE_OBJECT *DeviceObject) { + WCHAR AutoNameBuffer[20]; + UNICODE_STRING AutoName; PDEVICE_OBJECT CreatedDeviceObject; PDEVOBJ_EXTENSION DeviceObjectExtension; OBJECT_ATTRIBUTES ObjectAttributes; @@ -549,6 +553,16 @@ IoCreateDevice( DPRINT("IoCreateDevice(DriverObject %x)\n",DriverObject); } + if (DeviceCharacteristics & FILE_AUTOGENERATED_DEVICE_NAME) + { + swprintf(AutoNameBuffer, + L"\\Device\\%08lx", + InterlockedIncrement(&IopDeviceObjectNumber)); + RtlInitUnicodeString(&AutoName, + AutoNameBuffer); + DeviceName = &AutoName; + } + if (DeviceName != NULL) { InitializeObjectAttributes(&ObjectAttributes, DeviceName, 0, NULL, NULL);