Función CancelIoEx (ioapiset.h)

Marca las operaciones de E/S pendientes correspondientes al identificador de archivo especificado. La función solo cancela las operaciones de E/S del proceso actual, independientemente del subproceso que haya creado la operación de E/S.

Sintaxis

BOOL CancelIoEx(
  [in]           HANDLE       hFile,
  [in, optional] LPOVERLAPPED lpOverlapped
);

Parámetros

[in] hFile

Identificador del archivo.

[in, optional] lpOverlapped

Puntero a una estructura de datos OVERLAPPED que contiene los datos usados para la E/S asincrónica.

Si este parámetro es NULL, se cancelan todas las solicitudes de E/S del parámetro hFile.

Si este parámetro no es NULL, solo las solicitudes de E/S específicas emitidas para el archivo que tiene la estructura lpOverlapped especificada se marcan como canceladas, lo que significa que puede cancelar una o varias solicitudes, mientras que la función CancelIo cancela todas las solicitudes pendientes de un identificador de archivo.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero. La operación de cancelación de todas las operaciones de E/S pendientes emitidas por el proceso autor de la llamada para el identificador de archivo especificado se solicitó correctamente. La aplicación no debe liberar ni reutilizar la estructura OVERLAPPED asociada a las operaciones de E/S canceladas hasta que se hayan completado. El subproceso puede usar la función GetOverlappedResult para determinar cuándo se han completado las propias operaciones de E/S.

Si la función no se realiza correctamente, el valor devuelto es 0 (cero). Para obtener información ampliada de los errores, llame a la función GetLastError.

Si esta función no encuentra una solicitud para cancelar, el valor devuelto es 0 (cero) y GetLastError devuelve ERROR_NOT_FOUND.

Comentarios

La función CancelIoEx permite cancelar solicitudes en subprocesos distintos del subproceso autor de la llamada. La función CancelIo solo cancela las solicitudes en el mismo subproceso que llamó a la función CancelIo. CancelIo cancela solo la E/S pendiente en el identificador, no cambia el estado del identificador; esto significa que no puede confiar en el estado del identificador porque no puede saber si la operación se completó correctamente o se canceló.

Si hay operaciones de E/S pendientes en curso para el identificador de archivo especificado, la función CancelIoEx las marca para la cancelación. La mayoría de los tipos de operaciones se pueden cancelar inmediatamente; otras operaciones pueden continuar hasta su finalización antes de que se cancelen de verdad y se notifique al autor de la llamada. La función CancelIoEx no espera a que se completen todas las operaciones canceladas.

Si el identificador de archivo está asociado a un puerto de finalización, un paquete de finalización de E/S no se pone en cola en el puerto si se cancela correctamente una operación sincrónica. Para las operaciones asincrónicas todavía pendientes, la operación de cancelación pondrá en cola un paquete de finalización de E/S.

La operación que se cancela se completa con uno de los tres estados; debe comprobar el estado de finalización para determinarlo. Los tres estados son los siguientes:

  • La operación se completó normalmente. Esto puede ocurrir incluso si se canceló la operación, ya que es posible que la solicitud de cancelación no se haya enviado a tiempo para cancelar la operación.
  • Operación cancelada. La función GetLastError devuelve ERROR_OPERATION_ABORTED.
  • Se produjo un error en la operación con otro error. La función GetLastError devuelve el código de error pertinente.
En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.
Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado ioapiset.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CancelIo

CancelSynchronousIo

Cancelación de operaciones de E/S pendientes

Funciones de administración de archivos

E/S sincrónica y asincrónica