Compartilhar via


GetDeviceUniqueID

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função retorna um hash Application-specific do identificador de dispositivo. O aplicativo pode usar esse hash para identificar exclusivamente o dispositivo.

Syntax

HRESULT GetDeviceUniqueID(
  LPBYTE pbApplicationData,
  DWORD  cbApplictionData,
  DWORD dwDeviceIDVersion,
  LPBYTE pbDeviceIDOutput,
  DWORD* pcbDeviceIDOutput
);

Parameters

  • pbApplicationData
    [no] Application-provided dados, que é hash com identificador de dispositivo.

    Desde que o aplicativo fornece os dados mesmos como esta entrada, o mesmo hash sempre será retornado no mesmo dispositivo, mesmo se o dispositivo é re-flashed e / ou frio-inicializado. Este dados aplicativo deve ter um comprimento mínimo de 8 bytes e deve ser exclusivo para o aplicativo.

  • cbApplicationData
    [no] Comprimento de dados de aplicativo, pbApplicationData.

    Este parâmetro deve ser pelo menos 8 bytes ou chamar a função falhará.

  • dwDeviceIDVersion
    [no] Número Versão do algoritmo usado para calcular o identificador dispositivo retornado da GetDeviceUniqueID.

    Atualmente, o número somente versão definido é 1. Este parâmetro deve usar esse valor ou chamar a função falhará.

  • pbDeviceIDOutput
    [out] Reserva saída Application-provided de identificador de dispositivo.

    Esta reserva deve ser pelo menos igual a GETDEVICEUNIQUEID_VI_OUTPUT (20 bytes). Se a reserva fornecida é menor do que a completo hash, o hash será truncado e apenas os bytes que se ajustam serão copiados para a reserva saída.

    Se a reserva não for grande o suficiente, GetDeviceUniqueID Trunca os dados saída para ajustar a reserva e, em seguida, retorna HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER).

  • pcbDeviceIDOutput
    [in, Out] Especifica o comprimento do identificador de dispositivo.

    O parâmetro de entrada é o comprimento de reserva de Application-supplied. O parâmetro de saída é o número de bytes gravados na reserva de saída.

    Se esse ponteiro for igual a NULL, a chamar para GetDeviceUniqueID falhará.

Return Value

Se pbApplicationData é definido como NULL, essa função retorna E_POINTER.

Se cbApplicationData Não é pelo menos 8 bytes, essa função falha e retorna E_INVALIDARG.

Se dwDeviceIDversion é não igual a 1, esta função falha e retorna E_INVALIDARG.

Se pbDeviceIDOutput é definido como NULL, essa função retorna o comprimento máximo hash de saída in pcbDeviceIDOutput.

Se pcbDeviceIDOutput é definido como NULL, essa função falha e retorna com E_INVALIDARG.

A seguinte tabela mostra os valores de retorno para GetDeviceUniqueID, dependendo dos valores da pbDeviceIDOutput e pcbDeviceIDOutput Parâmetros.

valor pbDeviceIDOutput valor pcbDeviceIDOutput *pcbDeviceIDOutput Return valor

NULL

Não-NULL

Ignorado

S_OK é retornado e GetDeviceUniqueID Coloca o exigido tamanho do buffer in *pcbDeviceIDOutput.

Não-NULL

Não-NULL

Muito pequeno

HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) é retornado e GetDeviceUniqueID Trunca os dados saída para caber pbDeviceIDOutpute coloca a quantidade de dados copiados *pcbDeviceIDOutput.

Não-NULL

Não-NULL

Grande o suficiente

S_OK é retornado e GetDeviceUniqueID Preenchimentos pbDeviceIDOutput Com os dados saída e lugares a quantidade copiados *pcbDeviceIDOutput.

Remarks

GetDeviceUniqueID protege a privacidade de um dispositivo. Vários aplicativos precisam usar identificador exclusivo de um dispositivo para se comunicar com servidores. Para proteger privacidade de um dispositivo, múltiplo servidores devem não ser consiga correlacionar dados a partir o mesmo dispositivo. GetDeviceUniqueID não usa as informações adicionais Other Than os dados fornecidos pelo aplicativo, portanto, qualquer aplicativo que passa a mesma reserva dados aplicativo obterá o mesmo hash.

Exemplo de código

O seguinte exemplo de código mostra como usar o GetDeviceUniqueID função.

#define DEVICE_ID_LENGTH 20
#define APPLICATION_DATA "@^!MyAppName!^@"
#define APPLICATION_DATA_LENGTH 15
HRESULT hr = NOERROR;
BYTE rgDeviceId[DEVICE_ID_LENGTH];
DWORD cbDeviceId = sizeof(rgDeviceId);
hr = GetDeviceUniqueID(reinterpret_cast<PBYTE>(APPLICATION_DATA),
   APPLICATION_DATA_LENGTH,
   GETDEVICEUNIQUEID_V1,
   rgDeviceId,
   &cbDeviceId);
CHR(hr);
hr = DoSomethingWithDeviceId(rgDeviceId, cbDeviceId);

Requirements

Header getdeviceuniqueid.h
Library coredll.lib
Windows Embedded CE Windows Embedded CE 6.0 and later
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also

Reference

System Management Functions

Other Resources

Privileged APIs