+/**\r
+ Convert binary to hex format string.\r
+\r
+ @param[in] Buffer The binary data.\r
+ @param[in] BufferSize The size in bytes of the binary data.\r
+ @param[in, out] HexString Hex format string.\r
+ @param[in] HexStringSize The size in bytes of the string.\r
+\r
+ @return The hex format string.\r
+**/\r
+CHAR16*\r
+BinaryToHexString (\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize,\r
+ IN OUT CHAR16 *HexString,\r
+ IN UINTN HexStringSize\r
+ )\r
+{\r
+ UINTN Index;\r
+ UINTN StringIndex;\r
+\r
+ ASSERT (Buffer != NULL);\r
+ ASSERT ((BufferSize * 2 + 1) * sizeof (CHAR16) <= HexStringSize);\r
+\r
+ for (Index = 0, StringIndex = 0; Index < BufferSize; Index += 1) {\r
+ StringIndex +=\r
+ UnicodeSPrint (\r
+ &HexString[StringIndex],\r
+ HexStringSize - StringIndex * sizeof (CHAR16),\r
+ L"%02x",\r
+ ((UINT8 *) Buffer)[Index]\r
+ );\r
+ }\r
+ return HexString;\r
+}\r
+\r