- return mPrint2Protocol->UnicodeValueToString (Buffer, Flags, Value, Width);\r
+ RETURN_STATUS Status;\r
+ UINTN BufferSize;\r
+\r
+ if (Width == 0) {\r
+ BufferSize = (MAXIMUM_VALUE_CHARACTERS + 1) * sizeof (CHAR16);\r
+ } else {\r
+ BufferSize = (Width + 1) * sizeof (CHAR16);\r
+ }\r
+\r
+ Status = mPrint2SProtocol->UnicodeValueToStringS (Buffer, BufferSize, Flags, Value, Width);\r
+ if (RETURN_ERROR (Status)) {\r
+ return 0;\r
+ }\r
+\r
+ return StrnLenS (Buffer, BufferSize / sizeof (CHAR16));\r