This function is implemented by the Authentication Reset Component (ARC). It may perform any desired functionality in order to determine if the Authentication Reset process is allowed.
HRESULT ARCRequest( HWND hWndParent, const BYTE* pbRequestData, DWORD cbRequestData, LPBYTE* ppbResetData, LPDWORD pcbResetData );
[in] Handle to the parent window. Can be NULL.
[in] Pointer to the Request Data. To successfully complete Authentication Reset, this must be the same data returned by a successful call to ARCSetup. The meaning, size, and contents of the Request Data are defined by the Authentication Reset Component (ARC).
[in] Size in bytes of the buffer pointed to by pbRequestData.
[out] Pointer to a BYTE array that contains the Reset Data set during a call to ARCSetup, if available. The caller should verify that the contents of this buffer match the originally supplied Reset Data before continuing Authentication Reset steps. The buffer for the BYTE array will be allocated by this function. The caller is responsible to free this buffer using LocalFree. If no Reset Data are available, this argument will point to NULL.
[out] Size in bytes of the ppbResetData buffer. If no Reset Data are available, pcbResetData will equal zero.
Returns S_OK if Authentication Reset is allowed to proceed. In this case, pbRequestData must have been verified and ppbResetData must contain the originally-supplied Reset Data. If Authentication Reset cannot proceed, an error code is returned. The error code must be HRESULT(ERROR_PRIVILEGE_NOT_HELD) if the request is denied, but may contain more specific error information. Examples:
The Authentication Reset request is denied.
The wait timeout has been exceeded.
The Authentication Reset could not be completed at this time. The user may be requested to wait or perform some action, then try again.
The caller is not trusted.
Invalid pointer. Either ppbResetData is NULL or pcbResetData is NULL. Valid pointers for these arguments are required.
Invalid argument. pbRequestData is NULL or cbResetData is 0. Non-zero values for these arguments are required.
The user canceled the process.
The device is out of memory.
This function is called by the Shell in response to a request from a LAP to reset the user's authentication. LAPs must not call this function directly, they should use AuthResetRequest.
Buffers returned from this function must be allocated using LocalAlloc.
The Authentication Reset component may display user interface and may take any amount of time to complete this function. If user interface is displayed, the implementation must provide a way for the user to cancel or provide a mechanism to place emergency phone calls (on phone devices). All windows must have the WS_EX_ABOVESTARTUP exstyle set. If the user cancels, this function should return E_ABORT.
|This function is called by the Shell. Therefore, no link library is exposed.|