Compartir a través de


WinAPPCCancelBlockingCall

La función WinAPPCCancelBlockingCall cancela cualquier operación de bloqueo pendiente para su subproceso. Cualquier llamada bloqueada pendiente cancelada provocará que se genere un código de error de WAPPCCANCEL.

Sintaxis

  
BOOL WINAPI WinAPPCCancelBlockingCall(  
void  
);  
  

Valor devuelto

El valor devuelto especifica si la solicitud de cancelación se realizó correctamente. Si el valor es cero, se canceló la solicitud. De lo contrario, el valor es el siguiente:

WAPPCINVALID
Código de error que indica que no hay ninguna llamada de bloqueo pendiente.

Comentarios

Si el verbo pendiente está relacionado 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, mientras que la implementación reduce las conversaciones y las sesiones lo más limpias posible, no vacía los búferes de envío, espere confirmaciones, etc. Esta llamada es sincrónica y, una vez completado el procesamiento descrito anteriormente, se finaliza la función.

En Microsoft Windows, una aplicación multiproceso puede tener varias operaciones de bloqueo pendientes, pero solo una por subproceso. Para distinguir entre varias llamadas pendientes, WinAPPCCancelBlockingCall cancela la operación pendiente en el subproceso actual o llamando a la aplicación si existe una; de lo contrario, se produce un error. De forma predeterminada en Windows, Windows APPC suspende el subproceso de aplicación que realiza la llamada mientras una operación está pendiente. Como resultado, el subproceso en el que se inició la operación de bloqueo no recuperará el control (y, por lo tanto, no podrá emitir una llamada a WinAPPCCancelBlockingCall), a menos que se registre un enlace de bloqueo para el subproceso mediante WinAPPCSetBlockingHook.