+/**\r
+ Get lots of info about a device from its handle.\r
+\r
+ @param[in] TheHandle The device handle to get info on.\r
+ @param[in, out] Type On successful return R, B, or D (root, bus, or \r
+ device) will be placed in this buffer.\r
+ @param[in, out] Cfg On successful return this buffer will be \r
+ TRUE if the handle has configuration, FALSE\r
+ otherwise.\r
+ @param[in, out] Diag On successful return this buffer will be \r
+ TRUE if the handle has disgnostics, FALSE\r
+ otherwise.\r
+ @param[in, out] Parents On successful return this buffer will be \r
+ contain the number of parent handles.\r
+ @param[in, out] Devices On successful return this buffer will be \r
+ contain the number of devices controlled.\r
+ @param[in, out] Children On successful return this buffer will be \r
+ contain the number of child handles.\r
+ @param[out] Name The pointer to a buffer that will be allocated\r
+ and contain the string name of the handle.\r
+ The caller must free this memory.\r
+ @param[in] Language The language code as defined by the UEFI spec.\r
+\r
+ @retval EFI_SUCCESS The info is there.\r
+ @retval EFI_INVALID_PARAMETER A parameter was invalid.\r
+**/\r