PnpCopyDevProperty
NTSTATUS __stdcall PnpCopyDevProperty(DEVPROPERTY *InProperty, UINT64 Tag, DEVPROPERTY *OutProperty){
NTSTATUS PWSTR;
WCHAR *LocaleName;
ULONG BufferSize;
void *PoolWithTag;
PWSTR = 0;
*OutProperty = *InProperty;
OutProperty->CompKey.LocaleName = 0i64;
OutProperty->Buffer = 0i64;
LocaleName = (WCHAR *)InProperty->CompKey.LocaleName;
if( LocaleName )
{
PWSTR = PnpAllocatePWSTR(LocaleName, 0x7FFFFFFFui64, 0x57706E50ui64, (WCHAR **)&OutProperty->CompKey.LocaleName);
if( PWSTR < 0 )
goto LABEL_9;
}
BufferSize = OutProperty->BufferSize;
if( BufferSize )
{
PoolWithTag = ExAllocatePoolWithTag(PagedPool, BufferSize, 0x57706E50ui64);
OutProperty->Buffer = PoolWithTag;
if( !PoolWithTag )
{
PWSTR = -1073741670;
LABEL_9:
PnpFreeDevProperty(OutProperty, 0x57706E50ui64);
OutProperty->CompKey.Key.fmtid = 0i64;
*(_OWORD *)&OutProperty->CompKey.Key.pid = 0i64;
*(_OWORD *)&OutProperty->Type = 0i64;
return PWSTR;
}
}
memmove((UINT8 *)OutProperty->Buffer, (UINT8 *)InProperty->Buffer, OutProperty->BufferSize);
return PWSTR;
}Referenced by:
PnpCopyDevPropertyArray