IopQueryEnvironmentVariableInfoTrEE
INT64 __stdcall IopQueryEnvironmentVariableInfoTrEE(
FILE_OBJECT *FileObject,
DEVICE_OBJECT *DeviceObject,
UINT64 Attributes,
UINT64 *MaximumVariableStorageSize,
UINT64 *RemainingVariableStorageSize,
UINT64 *MaximumVariableSize){
NTSTATUS v7;
UINT64 InputBufferLength;
UINT64 OutputBufferLength;
UINT64 MinimumOutputSizeRequired;
UINT64 InputBuffer;
UINT64 EfiStatus[2];
__int128 v14;
LODWORD(InputBuffer) = 0;
HIDWORD(InputBuffer) = Attributes;
LODWORD(MinimumOutputSizeRequired) = 32;
LODWORD(OutputBufferLength) = 32;
LODWORD(InputBufferLength) = 4;
*(_OWORD *)EfiStatus = 0i64;
v14 = 0i64;
v7 = IopIssueTrEERequest(
2ui64,
FileObject,
DeviceObject,
(char *)&InputBuffer + 4,
InputBufferLength,
EfiStatus,
OutputBufferLength,
MinimumOutputSizeRequired,
&InputBuffer);
if( v7 >= 0 )
{
if( EfiStatus[0] )
{
return(unsigned int)IopEfiStatusToNTSTATUS(EfiStatus[0]);
}
else
{
*MaximumVariableStorageSize = EfiStatus[1];
*(_OWORD *)RemainingVariableStorageSize = v14;
}
}
return(unsigned int)v7;
}Referenced by:
No references.