IoGetEnvironmentVariableEx
INT64 __stdcall IoGetEnvironmentVariableEx(
WCHAR *VariableName,
GUID *VendorGuid,
PVOID Value,
UINT64 *ValueLength,
UINT64 *Attributes){
int v9;
struct _DMA_ADAPTER *v10;
int v11;
PVOID v13;
int v14;
PADAPTER_OBJECT DmaAdapter;
PDEVICE_OBJECT DeviceObject;
__int64(__fastcall **v17)(PADAPTER_OBJECT, PDEVICE_OBJECT, WCHAR *, GUID *, PVOID, UINT64 *, int *);
struct _EVENT_DATA_DESCRIPTOR v18;
char v19[16];
GUID *v20;
int v21;
int v22;
PADAPTER_OBJECT *p_DmaAdapter;
int v24;
int v25;
PDEVICE_OBJECT *p_DeviceObject;
int v27;
int v28;
void ***v29;
int v30;
int v31;
DeviceObject = 0i64;
DmaAdapter = 0i64;
v17 = 0i64;
v14 = -559038737;
v9 = IopOpenSystemVariableDevice((PFILE_OBJECT *)&DmaAdapter, &DeviceObject, (void ***)&v17);
if( v9 >= 0 )
{
v13 = Value;
v10 = DmaAdapter;
v9 = (*v17)(DmaAdapter, DeviceObject, VariableName, VendorGuid, v13, ValueLength, &v14);
if( Attributes )
*(_DWORD *)Attributes = v14;
if( v10 )
HalPutDmaAdapter(v10);
}
if( (unsigned int)dword_140C044D0 > 5 && tlgKeywordOn((__int64)&dword_140C044D0, 0x200000000000i64) )
{
tlgCreate1Sz_wchar_t((__int64)v19, VariableName);
v11 = *(_DWORD *)ValueLength;
v22 = 0;
v25 = 0;
v28 = 0;
v31 = 0;
LODWORD(DmaAdapter) = v11;
p_DmaAdapter = &DmaAdapter;
LODWORD(DeviceObject) = v14;
p_DeviceObject = &DeviceObject;
v29 = (void ***)&v17;
v24 = 4;
v27 = 4;
v30 = 4;
v20 = VendorGuid;
v21 = 16;
LODWORD(v17) = v9;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C044D0,
(unsigned __int8 *)&dword_140023F7C,
0i64,
0i64,
7u,
&v18);
}
return(unsigned int)v9;
}Referenced by:
ExpGetFirmwareEnvironmentVariable
ExpSetBootEntry
ExpSetDriverEntry
IopCachePreviousBootData
IopInitializeOfflineCrashDump
NtDeleteBootEntry
NtDeleteDriverEntry
NtGetEnvironmentVariableEx
NtQueryBootEntryOrder
NtQueryBootOptions