Share via


AuthResetSetup

4/8/2010

This function wraps the Authentication Reset Component (ARC) setup functionality.

Syntax

HRESULT AuthResetSetup(
  HWND hWndParent,
  const BYTE* pbResetData,
  DWORD cbResetData,
  LPBYTE* ppbRequestData,
  LPDWORD pcbRequestData
);

Parameters

  • hWndParent
    [in] Handle to the parent window. Can be NULL.
  • pbResetData
    [in] Optional pointer to Reset Data. The meaning, size, and contents of the Reset Data are defined by the caller. The same data will be returned by a successful call to AuthResetRequest. Can be NULL.
  • cbResetData
    [in] Size in bytes of the buffer pointed to by pbResetData. If pbResetData is not NULL then this parameter cannot be 0. If pbResetData is NULL then this parameter is ignored.
  • ppbRequestData
    [out] Pointer to a BYTE array that receives the data to use during a call to AuthResetRequest. The meaning, size, and contents of the Request Data are defined by the Authentication Reset Component. The caller is responsible for storing this data securely and providing it in subsequents calls to AuthResetReqeust. The buffer for the BYTE array is allocated by this function. The caller is responsible to free this buffer using LocalFree.
  • pcbRequestData
    [out] Pointer to a variable that receives the size in bytes of the buffer pointed to by parameter ppbRequestData.

Annotated Function Declaration

HRESULT AuthResetSetup(__in_opt HWND hWndParent, __in_bcount_opt(cbResetData) const BYTE* pbResetData, DWORD cbResetData, __deref_out_bcount (*pcbRequestData) LPBYTE* ppbRequestData, __out LPDWORD pcbRequestData);

Return Value

Returns S_OK if setup steps were completed successfully, otherwise it could return one of the following error codes:

  • HRESULT(ERROR_NOT_SUPPORTED)
    Device configuration does not permit Authentication Reset.
  • HRESULT(ERROR_TOO_MANY_SESS)
    Another thread is already calling AuthResetSetup or AuthResetRequest.
  • HRESULT(WAIT_TIMEOUT)
    The wait timeout has been exceeded.
  • E_ACCESSDENIED
    The caller is not trusted.
  • E_POINTER
    Invalid pointer. Either ppbRequestData is NULL or pcbRequestData is NULL. Valid pointers for these arguments are required.
  • E_INVALIDARG
    Invalid argument. pbResetData is not NULL and cbResetData is 0. This condition is not allowed.
  • E_ABORT
    The user canceled the process.
  • E_OUTOFMEMORY
    The device is out of memory.
  • E_FAIL
    Unspecified error.

Additional error codes may be defined by an Authentication Reset Component (ARC).

Remarks

A LAP should call this API during enrollment if it wants to make Authentication Reset available to the user at a later time. The LAP may supply Reset Data (e.g., an admin key) and must receive Request Data (e.g., a certificate). The method used to process the Request Data and the methods of storing and retrieving Reset Data are at the discretion of the Authentication Reset Component (ARC). Request Data must be securely stored and used when calling AuthResetRequest. If a call to AuthResetRequest is successful and Reset Data were supplied previously, the Reset Data are returned and the LAP should verify that these data match the originally-supplied data.

The Authentication Reset Component may display user interface and may take any amount of time to complete this function.

This function ignores the AuthenticationReset policy.

The default functionality encrypts the Reset Data with a key that is stored on an Exchange Server and returns the encrypted data to the caller as the Request Data.

This API can only be called by trusted processes.

Requirements

Header aygshell.h
Library Aygshell.dll
Windows Mobile Windows Mobile 6 Classic and later, Windows Mobile 6 Professional and later, Windows Mobile 6 Standard and later

See Also

Reference

Authentication Reset System Functions
Authentication Reset System Reference

Concepts

Authentication Reset System