CmGetInterfaceClassMappedPropertyFromComposite
NTSTATUS __stdcall CmGetInterfaceClassMappedPropertyFromComposite(
HPNPCTX *hPnpCtx,
WCHAR *ClassGuid,
VOID *ObjectBaseKey,
_DEVPROPKEY *PropertyKey,
UINT64 *PropertyType,
UINT8 *PropertyBuffer,
UINT64 BufferSize,
UINT64 *PropertySize){
NTSTATUS v8;
INT64 v9;
unsigned int pid;
__int64 v11;
NTSTATUS ObjectProperty;
v8 = 0;
v9 = (INT64)PropertyBuffer;
*(_DWORD *)PropertyType = 0;
*(_DWORD *)PropertySize = 0;
if( PropertyBuffer )
v9 = -(__int64)((_DWORD)BufferSize != 0) & (unsigned __int64)PropertyBuffer;
pid = PropertyKey->pid;
if( pid < 2 )
return -1073741264;
if( pid == 10 )
{
v11 = *(_QWORD *)&PropertyKey->fmtid.Data1 - *(_QWORD *)&DEVPKEY_NAME.fmtid.Data1;
if( *(_QWORD *)&PropertyKey->fmtid.Data1 == *(_QWORD *)&DEVPKEY_NAME.fmtid.Data1 )
v11 = *(_QWORD *)PropertyKey->fmtid.Data4 - *(_QWORD *)DEVPKEY_NAME.fmtid.Data4;
if( !v11 )
{
ObjectProperty = PnpGetObjectProperty(
(ULONG)hPnpCtx,
(INT64)ClassGuid,
4i64,
(INT64)ObjectBaseKey,
0i64,
(INT64)&DEVPKEY_DeviceInterfaceClass_Name,
(INT64)PropertyType,
v9);
v8 = ObjectProperty;
if( !ObjectProperty || ObjectProperty == -1073741789 )
*(_DWORD *)PropertySize = 0;
}
}
return v8;
}Referenced by:
CmGetInterfaceClassMappedProperty
CmGetInterfaceClassMappedPropertyKeys