+ //\r
+ // 1. Check ConnectionToken.\r
+ //\r
+ if ((Token == NULL) || ((SOCK_COMPLETION_TOKEN *)Token == Sock->ConnectionToken)) {\r
+ if (Sock->ConnectionToken != NULL) {\r
+ SIGNAL_TOKEN (Sock->ConnectionToken, EFI_ABORTED);\r
+ Sock->ConnectionToken = NULL;\r
+ }\r
+\r
+ if (Token != NULL) {\r
+ Status = EFI_SUCCESS;\r
+ goto Exit;\r
+ }\r
+ }\r
+\r
+ //\r
+ // 2. Check ListenTokenList.\r
+ //\r
+ Status = SockCancelToken (Token, &Sock->ListenTokenList);\r
+ if ((Token != NULL) && !EFI_ERROR (Status)) {\r
+ goto Exit;\r
+ }\r
+\r
+ //\r
+ // 3. Check RcvTokenList.\r
+ //\r
+ Status = SockCancelToken (Token, &Sock->RcvTokenList);\r
+ if ((Token != NULL) && !EFI_ERROR (Status)) {\r
+ goto Exit;\r
+ }\r
+\r
+ //\r
+ // 4. Check SndTokenList.\r
+ //\r
+ Status = SockCancelToken (Token, &Sock->SndTokenList);\r
+ if ((Token != NULL) && !EFI_ERROR (Status)) {\r
+ goto Exit;\r
+ }\r
+\r
+ //\r
+ // 5. Check ProcessingSndTokenList.\r
+ //\r
+ Status = SockCancelToken (Token, &Sock->ProcessingSndTokenList);\r