&ValueName,
0,
REG_DWORD,
- (PVOID)&DeviceNode->CapabilityFlags,
+ &DeviceNode->CapabilityFlags,
sizeof(ULONG));
/* Set 'UINumber' value */
if (!NT_SUCCESS(Status))
{
DPRINT1("PnpRootCreateDevice() failed with status 0x%08X\n", Status);
+ ExFreePool(FullServiceName.Buffer);
ExFreePoolWithTag(Node, TAG_IO_DEVNODE);
return Status;
}
if (!NT_SUCCESS(Status))
{
ZwClose(InstanceHandle);
- ExFreePoolWithTag(Node, TAG_IO_DEVNODE);
ExFreePool(FullServiceName.Buffer);
+ ExFreePoolWithTag(Node, TAG_IO_DEVNODE);
return Status;
}
if (!Node->ServiceName.Buffer)
{
ZwClose(InstanceHandle);
- ExFreePoolWithTag(Node, TAG_IO_DEVNODE);
ExFreePool(FullServiceName.Buffer);
+ ExFreePoolWithTag(Node, TAG_IO_DEVNODE);
return Status;
}
&ValueName,
0,
REG_SZ,
- (PVOID)KeyValue.Buffer,
+ KeyValue.Buffer,
((ULONG)wcslen(KeyValue.Buffer) + 1) * sizeof(WCHAR));
cleanup:
RtlInitUnicodeString(&ValueName, L"CompatibleIDs");
Status = ZwSetValueKey(InstanceKey,
- &ValueName,
- 0,
- REG_MULTI_SZ,
- (PVOID)IoStatusBlock.Information,
- (TotalLength + 1) * sizeof(WCHAR));
+ &ValueName,
+ 0,
+ REG_MULTI_SZ,
+ (PVOID)IoStatusBlock.Information,
+ (TotalLength + 1) * sizeof(WCHAR));
if (!NT_SUCCESS(Status))
{
DPRINT1("ZwSetValueKey() failed (Status %lx) or no Compatible ID returned\n", Status);