FsRtlInsertExtraCreateParameter
NTSTATUS __stdcall FsRtlInsertExtraCreateParameter(PECP_LIST EcpList, VOID *EcpContext){
_LIST_ENTRY *Flink;
_LIST_ENTRY *p_EcpList;
_LIST_ENTRY *v4;
_LIST_ENTRY *Blink;
char *v7;
Flink = EcpList->EcpList.Flink;
p_EcpList = &EcpList->EcpList;
if( Flink == &EcpList->EcpList )
{
LABEL_2:
v4 = (_LIST_ENTRY *)((char *)EcpContext - 64);
Blink = p_EcpList->Blink;
if( Blink->Flink != p_EcpList )
__fastfail(3u);
v4->Flink = p_EcpList;
v4->Blink = Blink;
Blink->Flink = v4;
p_EcpList->Blink = v4;
return 0;
}
else
{
while( 1 )
{
v7 = (char *)Flink[1].Flink - *((_QWORD *)EcpContext - 6);
if( !v7 )
v7 = (char *)Flink[1].Blink - *((_QWORD *)EcpContext - 5);
if( !v7 )
break;
Flink = Flink->Flink;
if( Flink == p_EcpList )
goto LABEL_2;
}
LODWORD(Flink[2].Blink) |= 4u;
return -1073741811;
}
}Referenced by:
IopSymlinkAllocateAndAddECP
IopSymlinkEnforceEnabledTypes
PspCreateUserProcessEcp