DrvDbGetCompositeMappedPropertyKeys
NTSTATUS __stdcall DrvDbGetCompositeMappedPropertyKeys(
_DRVDB_CONTEXT *pDrvDbCtx,
const _DEVPROPKEY **CompositePropertyKeyList,
UINT64 CompositePropertyKeyCount,
_DEVPROPKEY *PropertyKeys,
UINT64 BufferLength,
UINT64 *PropertyCount){
NTSTATUS result;
__int64 v7;
unsigned int v8;
const _DEVPROPKEY *v10;
__int64 v11;
unsigned int v12;
int v13;
unsigned int v14;
result = 0;
v7 = 0i64;
v8 = 0;
if( (_DWORD)CompositePropertyKeyCount )
{
while( 1 )
{
if( PropertyKeys && (unsigned int)v7 < (unsigned int)BufferLength )
{
v10 = *CompositePropertyKeyList;
v11 = v7;
v7 = (unsigned int)(v7 + 1);
PropertyKeys[v11].fmtid = (*CompositePropertyKeyList)->fmtid;
PropertyKeys[v11].pid = v10->pid;
}
v12 = *(_DWORD *)PropertyCount;
v13 = -1;
v14 = *(_DWORD *)PropertyCount + 1;
if( v14 >= *(_DWORD *)PropertyCount )
v13 = *(_DWORD *)PropertyCount + 1;
*(_DWORD *)PropertyCount = v13;
result = v14 < v12 ? 0xC0000095 : 0;
if( v14 < v12 )
break;
++v8;
++CompositePropertyKeyList;
if( v8 >= (unsigned int)CompositePropertyKeyCount )
return result;
}
*(_DWORD *)PropertyCount = 0;
}
return result;
}Referenced by:
DrvDbGetDeviceIdMappedPropertyKeys
DrvDbGetDriverDatabaseMappedPropertyKeys
DrvDbGetDriverFileMappedPropertyKeys
DrvDbGetDriverInfFileMappedPropertyKeys
DrvDbGetDriverPackageMappedPropertyKeys