IoGetDeviceProperty():

Fix DevicePropertyEnumeratorName
Implement DevicePropertyPhysicalDeviceObjectName

svn path=/trunk/; revision=15415
This commit is contained in:
Hervé Poussineau 2005-05-19 22:04:45 +00:00
parent 2e828da9a2
commit 026d788dcc

View file

@ -236,6 +236,7 @@ IoGetDeviceProperty(
if (Ptr != NULL)
{
Length = (ULONG)((ULONG_PTR)Ptr - (ULONG_PTR)DeviceNode->InstancePath.Buffer) + sizeof(WCHAR);
Data = DeviceNode->InstancePath.Buffer;
}
else
{
@ -245,7 +246,9 @@ IoGetDeviceProperty(
break;
case DevicePropertyPhysicalDeviceObjectName:
return STATUS_NOT_IMPLEMENTED;
Length = DeviceNode->InstancePath.Length + sizeof(WCHAR);
Data = DeviceNode->InstancePath.Buffer;
break;
default:
return STATUS_INVALID_PARAMETER_2;
@ -257,7 +260,8 @@ IoGetDeviceProperty(
RtlCopyMemory(PropertyBuffer, Data, Length);
/* Terminate the string */
if (DeviceProperty == DevicePropertyEnumeratorName)
if (DeviceProperty == DevicePropertyEnumeratorName
|| DeviceProperty == DevicePropertyPhysicalDeviceObjectName)
{
Ptr = (PWSTR)PropertyBuffer;
Ptr[(Length / sizeof(WCHAR)) - 1] = 0;