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.

Observaciones

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 devuelto por 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), el TP finaliza. En ambos casos, aunque la implementación cierra las conversaciones y las sesiones lo más limpiamente posible, no vacía los búferes de envío, espera confirmaciones, y así sucesivamente. 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 al intentar cancelar una rutina WinAsyncAPPC asincrónica existente con un código de error de WAPPCALREADY, se ha producido una de estas dos cosas. Ya se ha completado la rutina original y la aplicación se ha ocupado del 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.