CBADMITRESULT callback function (lpmapi.h)

The cbAdmitResult function is used by LPMs to return results for the LPM_AdmitRsvpMsg request. LPMs should only use this function if they have returned LPM_RESULT_DEFER to the LPM_AdmitRsvpMsg function call. The PCM will only accept results from this function within the result time limit established by each LPM through the ResultTimeLimit parameter of the LPM_Initialize function.

Syntax

CBADMITRESULT Cbadmitresult;

ULONG * Cbadmitresult(
  [in] LPM_HANDLE LpmHandle,
  [in] RHANDLE RequestHandle,
  [in] ULONG ulPcmActionFlags,
  [in] int LpmError,
  [in] int PolicyDecisionsCount,
  [in] POLICY_DECISION *pPolicyDecisions
)
{...}

Parameters

[in] LpmHandle

Unique handle for the LPM, as supplied in LPM_Initialize. The PCM will ignore any result that is not accompanied by a valid LPM handle.

[in] RequestHandle

Unique handle that distinguishes this request from all other requests. LPMs must pass this handle to the PCM when returning results asynchronously for an individual request by calling cbAdmitResult. The RequestHandle parameter becomes invalid once results are returned, requiring each request to get its own unique RequestHandle from the PCM.

[in] ulPcmActionFlags

Policy Control Module action flags.

[in] LpmError

LPM error code. Must be one of the following:

Value Meaning
INV_LPM_HANDLE
The supplied LPM handle is invalid.
LPM_TIME_OUT
The LPM has returned results after the time limit.
INV_REQ_HANDLE
The supplied request handle is invalid.
DUP_RESULTS
The LPM has already returned results for this request.
INV_RESULTS
The results supplied are invalid.

[in] PolicyDecisionsCount

The number of policy decisions provided in pPolicyDecisions.

[in] pPolicyDecisions

Policy decisions, in the form of one or more POLICY_DECISION structures.

Return value

This callback function does not return a value.

Remarks

When a request has been rejected, the PCM will call the LPM to instruct it to delete the request's state. The LPM can choose to delete the request's state at any time during the rejection process. If the LPM deletes a request's state shortly after its rejection of the request, the LPM must be prepared to handle subsequent calls (by the PCM, through the LPM_DeleteState function) to delete the (already deleted) state.

The LPM does not need to maintain state for requests to which it returns LPV_DONT_CARE. However, the LPM must be prepared to handle LPM_DeleteState requests for this (nonexisting) state.

Requirements

   
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header lpmapi.h

See also

LPM_AdmitRsvpMsg

LPM_DeleteState

LPM_Initialize