FsRtlGetNextExtraCreateParameter

NTSTATUS __stdcall FsRtlGetNextExtraCreateParameter(
        _ECP_LIST *EcpList,
        VOID *CurrentEcpContext,
        _GUID *NextEcpType,
        VOID **NextEcpContext,
        UINT64 *NextEcpContextSize){
  _LIST_ENTRY *p_EcpList; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY **p_Blink; 
  NTSTATUS v8; 

  p_EcpList = &EcpList->EcpList;
  if( CurrentEcpContext )
    Flink = (_LIST_ENTRY *)*((_QWORD *)CurrentEcpContext - 8);
  else
    Flink = p_EcpList->Flink;
  if( Flink == p_EcpList || (p_Blink = &Flink[-1].Blink) == 0i64 )
  {
    v8 = -1073741275;
    if( NextEcpContext )
      *NextEcpContext = 0i64;
    if( NextEcpContextSize )
      *(_DWORD *)NextEcpContextSize = 0;
    if( NextEcpType )
      *NextEcpType = 0i64;
  }
  else
  {
    v8 = 0;
    if( NextEcpContext )
      *NextEcpContext = p_Blink + 9;
    if( NextEcpContextSize )
      *(_DWORD *)NextEcpContextSize = *((_DWORD *)p_Blink + 13) - 72;
    if( NextEcpType )
      *NextEcpType = *(_GUID *)(p_Blink + 3);
  }
  return v8;
}

Referenced by:

No references.