IoQueryEnvironmentVariableInfoEx
NTSTATUS __stdcall IoQueryEnvironmentVariableInfoEx(
UINT64 Attributes,
UINT64 *MaximumVariableStorageSize,
UINT64 *RemainingVariableStorageSize,
UINT64 *MaximumVariableSize){
unsigned int v6;
int v8;
PFILE_OBJECT FileObject;
VOID **FunctionTable;
PDEVICE_OBJECT DeviceObject;
UINT64 v13;
UINT64 v14;
_EVENT_DATA_DESCRIPTOR v15;
VOID ***p_FunctionTable;
int v17;
int v18;
PDEVICE_OBJECT *p_DeviceObject;
int v20;
int v21;
UINT64 *v22;
int v23;
int v24;
UINT64 *v25;
int v26;
int v27;
PFILE_OBJECT *p_FileObject;
int v29;
int v30;
DeviceObject = 0i64;
FileObject = 0i64;
FunctionTable = 0i64;
v6 = Attributes;
v8 = IopOpenSystemVariableDevice(&FileObject, &DeviceObject, &FunctionTable);
if( v8 >= 0 )
{
v8 = ((__int64(__fastcall *)(PFILE_OBJECT, PDEVICE_OBJECT, _QWORD, UINT64 *, UINT64 *, UINT64 *))FunctionTable[3])(
FileObject,
DeviceObject,
v6,
MaximumVariableStorageSize,
RemainingVariableStorageSize,
MaximumVariableSize);
if( FileObject )
HalPutDmaAdapter((PADAPTER_OBJECT)FileObject);
}
if( (unsigned int)dword_140C044D0 > 5 && tlgKeywordOn((__int64)&dword_140C044D0, 0x200000000000i64) )
{
v18 = 0;
v21 = 0;
v24 = 0;
v27 = 0;
v30 = 0;
p_FunctionTable = &FunctionTable;
DeviceObject = (PDEVICE_OBJECT)*MaximumVariableStorageSize;
p_DeviceObject = &DeviceObject;
v13 = *RemainingVariableStorageSize;
v22 = &v13;
v14 = *MaximumVariableSize;
v25 = &v14;
p_FileObject = &FileObject;
v17 = 4;
v20 = 8;
v23 = 8;
v26 = 8;
v29 = 4;
LODWORD(FunctionTable) = v6;
LODWORD(FileObject) = v8;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C044D0,
(unsigned __int8 *)byte_140023EF9,
0i64,
0i64,
7u,
&v15);
}
return v8;
}Referenced by:
NtQueryEnvironmentVariableInfoEx