/** @file\r
Locate handle functions\r
\r
-Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
PROTOCOL_NOTIFY *ProtNotify;\r
IHANDLE *Handle;\r
\r
- if (Interface == NULL) {\r
+ if ((Interface == NULL) || (Protocol == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (Protocol == NULL) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
*Interface = NULL;\r
Status = EFI_SUCCESS;\r
\r
//\r
// Lock the protocol database\r
//\r
- CoreAcquireProtocolLock ();\r
+ Status = CoreAcquireLockOrFail (&gProtocolDatabaseLock);\r
+ if (EFI_ERROR (Status)) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
\r
mEfiLocateHandleRequest += 1;\r
\r
@retval EFI_NOT_FOUND No handles match the search.\r
@retval EFI_OUT_OF_RESOURCES There is not enough pool memory to store the\r
matching results.\r
- @retval EFI_INVALID_PARAMETER One or more paramters are not valid.\r
+ @retval EFI_INVALID_PARAMETER One or more parameters are not valid.\r
\r
**/\r
EFI_STATUS\r