PiDqPnPGetObjectPropertyLocales
NTSTATUS __stdcall PiDqPnPGetObjectPropertyLocales(
WCHAR *ObjectName,
PNP_OBJECT_TYPE ObjectType,
VOID *ObjectBaseKey,
_DEVPROPKEY *PropertyKey,
WCHAR **Buffer){
PNP_OBJECT_TYPE v8;
VOID **PoolWithTag;
NTSTATUS ObjectPropertyLocales;
NTSTATUS v11;
INT64 v13;
UINT64 *v14;
__int64 cchDest[2];
LODWORD(cchDest[0]) = 40;
v8 = (int)ObjectName;
*Buffer = 0i64;
while( 1 )
{
if( *Buffer )
ExFreePoolWithTag(*Buffer, 0x58706E50u);
PoolWithTag = ExAllocatePoolWithTag(1ui64, 2i64 * LODWORD(cchDest[0]), 1483763280i64);
*Buffer = (WCHAR *)PoolWithTag;
if( !PoolWithTag )
break;
if( ObjectType )
{
LODWORD(v14) = cchDest[0];
ObjectPropertyLocales = PnpGetObjectPropertyLocales(
(WCHAR *)LODWORD(cchDest[0]),
v8,
(VOID *)(unsigned int)ObjectType,
(_DEVPROPKEY *)ObjectBaseKey,
(WCHAR *)PropertyKey,
(UINT64)PoolWithTag,
v14);
}
else
{
LODWORD(v13) = cchDest[0];
ObjectPropertyLocales = PnpGetGenericStorePropertyLocales(
*(&stru_140CF2E80 + 607),
(CHAR *)ObjectBaseKey,
(INT64)PropertyKey,
(WCHAR *)PoolWithTag,
v13,
(UINT64 *)cchDest);
}
v11 = ObjectPropertyLocales;
if( ObjectPropertyLocales != -1073741789 )
goto LABEL_11;
}
v11 = -1073741670;
LABEL_11:
if( v11 < 0 && *Buffer )
{
ExFreePoolWithTag(*Buffer, 0x58706E50u);
*Buffer = 0i64;
}
return v11;
}Referenced by:
No references.