Compartir a través de


Determinar si una plataforma es móvil o de escritorio

TMM solo se ejecuta en equipos móviles y se deshabilita automáticamente en equipos de escritorio. Los proveedores de hardware deben habilitar y usar sus propios métodos propietarios para escribir la vista de clonación en equipos de escritorio. Deben determinar si una plataforma es móvil para que puedan evitar el uso de sus métodos propietarios para escribir la vista clonada en un equipo móvil y, en su lugar, usar TMM.

Los proveedores de hardware pueden usar el código siguiente para determinar si una plataforma es móvil o de escritorio. Después, la plataforma puede usar el mecanismo adecuado para entrar en la vista clonada.

#include <Powrprof.h>   // For GetPwrCapabilities

    BOOL IsMobilePlatform()
    {
        BOOL fIsMobilePlatform = FALSE;

        fIsMobilePlatform = (PlatformRoleMobile == PowerDeterminePlatformRole());

        POWER_PLATFORM_ROLE iRole;

        // Check if the operating system determines 
        // that the computer is a mobile computer.
        iRole = PowerDeterminePlatformRole();

        if (PlatformRoleMobile == iRole)
        {
            fIsMobilePlatform = TRUE;
        }
        else if (PlatformRoleDesktop == iRole) 
        // Can happen when a battery is not plugged into a laptop
        {
            SYSTEM_POWER_CAPABILITIES powerCapabilities;

            if (GetPwrCapabilities(&powerCapabilities))
            {
         // Check if a battery exists, and it is not for a UPS.
         // Note that SystemBatteriesPresent is set on a laptop even if the battery is unplugged.
                fIsMobilePlatform = ((TRUE == powerCapabilities.SystemBatteriesPresent) && (FALSE == powerCapabilities.BatteriesAreShortTerm));
            }
            // GetPwrCapabilities should never fail 
            // However, if it does, leave fReturn == FALSE.
        }

        return fIsMobilePlatform;
    }

Para obtener información sobre las funciones a las que se llama en el código anterior, consulte la documentación de Microsoft Windows SDK.