Función CancelIoEx

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

Sintaxis

BOOL WINAPI CancelIoEx(
  _In_     HANDLE       hFile,
  _In_opt_ LPOVERLAPPED lpOverlapped
);

Parámetros

hFile [in]

Identificador del archivo.

lpOverlapped [in, optional]

Puntero a una estructura de datos SUPERPUESTA 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 para el parámetro hFile .

Si este parámetro no es NULL, solo las solicitudes de E/S específicas emitidas para el archivo con la estructura superpuesta 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 en 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 de llamada para el identificador de archivo especificado se solicitó correctamente. La aplicación no debe liberar ni reutilizar la estructura SUPERPUESTA 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 operaciones de E/S.

Si se produce un error en la función, el valor devuelto es 0 (cero). Para obtener información de error extendida, 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.

Observaciones

La función CancelIoEx permite cancelar solicitudes en subprocesos distintos del subproceso que llama. La función CancelIo solo cancela las solicitudes en el mismo subproceso que llamó a la función CancelIo . CancelIoEx 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 realmente 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 determinar el estado de finalización. Los tres estados son:

  • 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.
  • Error en la operación con otro error. La función GetLastError devuelve el código de error correspondiente.

En Windows 8 y Windows Server 2012, esta función es compatible con las siguientes tecnologías.

Technology Compatible
Protocolo bloque de mensajes del servidor (SMB) 3.0
Yes
Conmutación por error transparente (TFO) de SMB 3.0
Yes
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Yes
Sistema de archivos de volumen compartido de clúster (CsvFS)
Yes
Sistema de archivos resistente a errores (ReFS)
Yes

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]
Encabezado
IoAPI.h (incluye Windows.h);
WinBase.h en Windows Server 2008 R2, Windows 7, Windows Server 2008 y Windows Vista (incluye Windows.h)
Biblioteca
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