/* NOTE: This call will fail if the architectural ResetSystem underpinnings are not initialized. For DXE, you can add gEfiResetArchProtocolGuid to your DEPEX. */
VOID EFIAPI ResetSystemWithSubtype(IN EFI_RESET_TYPE ResetType, IN CONST GUID *ResetSubtype)
/* NOTE: This call will fail if the architectural ResetSystem underpinnings are not initialized. For DXE, you can add gEfiResetArchProtocolGuid to your DEPEX. */
VOID EFIAPI ResetSystemWithSubtype(IN EFI_RESET_TYPE ResetType, IN CONST GUID *ResetSubtype)
{
  RESET_UTILITY_GUID_SPECIFIC_RESET_DATA  ResetData;
  ResetData.NullTerminator = CHAR_NULL;
  CopyGuid (
    (GUID *)((UINT8 *)&ResetData + OFFSET_OF (RESET_UTILITY_GUID_SPECIFIC_RESET_DATA, ResetSubtype)),
    ResetSubtype
    );
  ResetSystem (ResetType, EFI_SUCCESS, sizeof (ResetData), &ResetData);
}