IoEnumerateEnvironmentVariablesEx
NTSTATUS __stdcall IoEnumerateEnvironmentVariablesEx(
WCHAR *VariableName,
_GUID *VendorGuid,
PVOID Value,
UINT64 *ValueLength,
UINT64 *Attributes){
unsigned int v7;
int v9;
_ADAPTER_OBJECT *v10;
PVOID v12;
bool v13;
PFILE_OBJECT FileObject;
PDEVICE_OBJECT DeviceObject;
VOID **FunctionTable;
_EVENT_DATA_DESCRIPTOR v17;
PFILE_OBJECT *p_FileObject;
int v19;
int v20;
PDEVICE_OBJECT *p_DeviceObject;
int v22;
int v23;
VOID ***p_FunctionTable;
int v25;
int v26;
bool *v27;
int v28;
int v29;
DeviceObject = 0i64;
FileObject = 0i64;
FunctionTable = 0i64;
v7 = (unsigned int)VariableName;
v9 = IopOpenSystemVariableDevice(&FileObject, &DeviceObject, &FunctionTable);
if( v9 >= 0 )
{
v12 = Value;
v10 = (_ADAPTER_OBJECT *)FileObject;
v9 = ((__int64(__fastcall *)(PFILE_OBJECT, PDEVICE_OBJECT, _QWORD, _GUID *, PVOID, UINT64 *))FunctionTable[2])(
FileObject,
DeviceObject,
v7,
VendorGuid,
v12,
ValueLength);
if( v10 )
HalPutDmaAdapter(v10);
}
if( (unsigned int)dword_140C044D0 > 5 && tlgKeywordOn((__int64)&dword_140C044D0, 0x200000000000i64) )
{
v20 = 0;
v23 = 0;
v26 = 0;
p_FileObject = &FileObject;
LODWORD(DeviceObject) = *(_DWORD *)ValueLength;
v13 = VendorGuid != 0i64;
v29 = 0;
p_DeviceObject = &DeviceObject;
v19 = 4;
p_FunctionTable = &FunctionTable;
v22 = 4;
v27 = &v13;
v25 = 4;
LODWORD(FileObject) = v7;
LODWORD(FunctionTable) = v9;
v28 = 1;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C044D0,
(unsigned __int8 *)&dword_140023FD4,
0i64,
0i64,
6u,
&v17);
}
return v9;
}Referenced by:
NtEnumerateBootEntries
NtEnumerateDriverEntries
NtEnumerateSystemEnvironmentValuesEx