PsRequestSubmit

Submits a request for the execution of a previously assigned Pulse API call.

Syntax

PULSE_STATUS PsRequestSubmit(
 [in] PPS_REQUEST pRequest
);

Parameters

PPS_REQUEST pRequest

An opaque handle to a request created by the PsRequestCreate function.

Return value

If the function succeeds, the return value is PULSE_STATUS_SUCCESS.

If it fails, it returns one of the PULSE_STATUS values. Possible return codes include, but are not limited to, the following:

PULSE_STATUS_WRITE_FAILED
0xC0000004
Request packet transmission failed.
PULSE_STATUS_TIMEOUT
0xC0000007
Request packet transmission timed out.
PULSE_STATUS_INVALID_PARAMETER
0xC0000010
The pRequest parameter is NULL.
PULSE_STATUS_REQUEST_NOT_INITIALIZED
0xC0000402
No Pulse API function has been assigned to the request.
PULSE_STATUS_REQUEST_BUSY
0xC0000403
The request has already been submitted and not yet completed.
PULSE_STATUS_REQUEST_ALREADY_POSTED
0xC0000404
The request has already been submitted and not yet completed.
PULSE_STATUS_DEVICE_CONNECTION_LOST
0xC0000308
The connection to the transport was lost. Try restarting the engine or the transport.

Remarks

This function requires an assigned Pulse API function, i.e., any PsRequest* function with a payload.

This function effectively sends a packet to the debugger with an operation request based on the assigned Pulse API function.

If this function succeeds with status PULSE_STATUS_SUCCESS, you may use the PsRequestWait function to wait for the request completion and PsRequestGetStatus function to check current request status.

For a synchronous request completion, use the PsRequestExecute function.