+ //\r
+ // Look for it in root SMI handlers\r
+ //\r
+ SmiHandler = NULL;\r
+ for ( HandlerLink = GetFirstNode (&mRootSmiEntry.SmiHandlers)\r
+ ; !IsNull (&mRootSmiEntry.SmiHandlers, HandlerLink) && (SmiHandler != DispatchHandle)\r
+ ; HandlerLink = GetNextNode (&mRootSmiEntry.SmiHandlers, HandlerLink)\r
+ ) {\r
+ SmiHandler = CR (HandlerLink, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
+ }\r
+\r
+ //\r
+ // Look for it in non-root SMI handlers\r
+ //\r
+ for ( EntryLink = GetFirstNode (&mSmiEntryList)\r
+ ; !IsNull (&mSmiEntryList, EntryLink) && (SmiHandler != DispatchHandle)\r
+ ; EntryLink = GetNextNode (&mSmiEntryList, EntryLink)\r
+ ) {\r
+ SmiEntry = CR (EntryLink, SMI_ENTRY, AllEntries, SMI_ENTRY_SIGNATURE);\r
+ for ( HandlerLink = GetFirstNode (&SmiEntry->SmiHandlers)\r
+ ; !IsNull (&SmiEntry->SmiHandlers, HandlerLink) && (SmiHandler != DispatchHandle)\r
+ ; HandlerLink = GetNextNode (&SmiEntry->SmiHandlers, HandlerLink)\r
+ ) {\r
+ SmiHandler = CR (HandlerLink, SMI_HANDLER, Link, SMI_HANDLER_SIGNATURE);\r
+ }\r
+ }\r
+\r
+ if (SmiHandler != DispatchHandle) {\r