WmipProbeWmiOpenGuidBlock
NTSTATUS __stdcall WmipProbeWmiOpenGuidBlock(
_OBJECT_ATTRIBUTES *CapturedObjectAttributes,
_UNICODE_STRING *CapturedGuidString,
WCHAR *CapturedGuidBuffer,
UINT64 *DesiredAccess,
WMIOPENGUIDBLOCK *InGuidBlock,
UINT64 InBufferLen,
UINT64 OutBufferLen){
_OBJECT_ATTRIBUTES *v11;
WMIOPENGUIDBLOCK v12;
NTSTATUS result;
if( IoIs32bitProcess(0i64) )
{
if( (_DWORD)InBufferLen == 16 && (_DWORD)OutBufferLen == 16 )
{
v11 = (_OBJECT_ATTRIBUTES *)(unsigned int)*InGuidBlock;
v12 = InGuidBlock[1];
goto LABEL_5;
}
return -1073741823;
}
if( (_DWORD)InBufferLen != 24 || (_DWORD)OutBufferLen != 24 )
return -1073741823;
v11 = *(_OBJECT_ATTRIBUTES **)InGuidBlock;
v12 = InGuidBlock[2];
LABEL_5:
*(_DWORD *)DesiredAccess = v12;
result = WmipProbeAndCaptureGuidObjectAttributes(
CapturedObjectAttributes,
CapturedGuidString,
CapturedGuidBuffer,
v11);
if( result >= 0
&& (CapturedObjectAttributes->RootDirectory
|| CapturedObjectAttributes->Attributes
|| CapturedObjectAttributes->SecurityDescriptor
|| CapturedObjectAttributes->SecurityQualityOfService) )
{
return -1073741811;
}
return result;
}Referenced by:
WmipIoControl