VfReportIssueWithOptions
VOID __stdcall VfReportIssueWithOptions(
UINT64 Code,
ULONG_PTR Param1,
ULONG_PTR Param2,
ULONG_PTR Param3,
ULONG_PTR Param4,
UINT64 *Action){
UINT64 v6;
UINT64 v7;
UINT64 v8;
UINT64 v9;
int v10;
UINT64 v11;
v6 = *(_QWORD *)&Param3;
v7 = *(_QWORD *)&Param2;
v8 = (unsigned int)Code;
v9 = *(_QWORD *)&Param1;
v10 = *(_DWORD *)Action;
if( *(_DWORD *)Action && (v10 & 2) == 0 )
{
if( (((v10 & 8) == 0) & !_bittest(&VfOptionFlags, 9u)) != 0 && (_BYTE)KdDebuggerEnabled )
{
if( (v10 & 4) != 0 )
{
while( 1 )
{
VfUtilDbgPrint((INT8 *)"\n*** Verifier assertion failed ***\n");
DbgPrompt((INT64)"(B)reak, (I)gnore, (W)arn only, (R)emove assert? ");
switch( (_BYTE)Action )
{
case 'B':
goto LABEL_15;
case 'I':
return;
case 'R':
goto LABEL_16;
case 'W':
goto LABEL_14;
case 'b':
LABEL_15:
VfErrorStoreTriageInformation(v8, v9, v7, v6, *(UINT64 *)&Param4);
__debugbreak();
case 'i':
return;
}
if( (_BYTE)Action == 114 )
break;
if( (_BYTE)Action == 119 )
{
LABEL_14:
*(_DWORD *)Action = 2;
return;
}
}
LABEL_16:
*(_DWORD *)Action = 0;
}
}
else
{
VerifierBugCheckIfAppropriate((unsigned int)Code, Param1, Param2, Param3, Param4, v11);
}
}
}Referenced by:
ADD_MAP_REGISTERS
DECREMENT_ADAPTER_CHANNELS
DECREMENT_COMMON_BUFFERS
DECREMENT_SCATTER_GATHER_LISTS
INCREASE_MAPPED_TRANSFER_BYTE_COUNT
INCREMENT_ADAPTER_CHANNELS
SUBTRACT_MAP_REGISTERS
VERIFY_BUFFER_LOCKED
VF_ASSERT_IRQL
VF_ASSERT_MAX_IRQL
VfBuildScatterGatherList
VfBuildScatterGatherListEx
VfCheckImageCompliance
VfCheckPagePriority
VfCheckPageProtection
VfCheckPoolType
VfDeadlockAcquireResource
VfDeadlockReleaseResource
VfFlushAdapterBuffers
VfGetScatterGatherList
VfGetScatterGatherListEx
VfMapTransfer
VfMapTransferEx
VfPutDmaAdapter
ViAllocateMapRegistersFromFile
ViCheckPadding
ViCheckTag
ViCopyDeviceDescription
ViDeadlockAddResource
ViDeadlockAnalyze
ViDeadlockRemoveResource
ViDeadlockRemoveThread
ViFlushDoubleBuffer
ViGetAdapterInformationInternal
ViGetMdlBufferSa
ViGetRealDmaOperation
ViMapDoubleBuffer
ViReleaseDmaAdapter