WinAPPCCancelAsyncRequest
La función WinAPPCCancelAsyncRequest cancela una solicitud pendiente basada en WinAsyncAPPC.
Sintaxis
int WINAPI WinAPPCCancelAsyncRequest(
HANDLE hAsyncTaskID);
Parámetros
hAsyncTaskID
Parámetro proporcionado. Especifica la tarea asincrónica que se va a cancelar.
Valor devuelto
El valor devuelto especifica si se canceló la solicitud asincrónica. Si el valor es cero, se canceló la solicitud. De lo contrario, el valor es uno de los siguientes:
WAPPCINVALID
Código de error que indica que el identificador de tarea asincrónico especificado no era válido.
WAPPCALREADY
Código de error que indica que la rutina asincrónica que se va a cancelar ya se ha completado.
Comentarios
Una tarea asincrónica iniciada previamente mediante la emisión de una de las funciones WinAsyncAPPC, WinAsyncAPPCEx o WinAsyncAPPCIOCP se puede cancelar antes de finalizar mediante la emisión de la función WinAPPCCancelAsyncRequest , especificando el identificador de tarea asincrónico tal como lo devuelve la función inicial en hAsyncTaskID.
Si el verbo pendiente se relaciona con una conversación (por ejemplo, SEND_DATA o RECEIVE_AND_WAIT), el verbo se purga y se cierra la sesión. Si el verbo se relaciona con un TP (por ejemplo, RECEIVE_ALLOCATE o TP_STARTED), se finaliza el TP. En ambos casos, mientras que la implementación cierra las conversaciones y las sesiones lo más limpia posible, no vacía los búferes de envío, espera confirmaciones, etc. Esta llamada es sincrónica y, una vez completado el procesamiento descrito anteriormente, se publica un mensaje de finalización para el verbo cancelado.
Si se produce un error en un intento de cancelar una rutina asincrónica de WinAsyncAPPC existente con un código de error de WAPPCALREADY, se ha producido una de estas dos cosas. La rutina original ya se ha completado y la aplicación ha tratado el mensaje resultante, o bien la rutina original ya se ha completado y el mensaje resultante sigue esperando en la cola de la ventana de la aplicación.