Compartir a través de


LPOVERLAPPED_COMPLETION_ROUTINE función de devolución de llamada (minwinbase.h)

Función de devolución de llamada definida por la aplicación que se usa con las funciones ReadFileEx y WriteFileEx. Se llama cuando la operación asincrónica de entrada y salida (E/S) se completa o cancela y el subproceso que realiza la llamada está en un estado de alerta (mediante el uso del parámetro SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx o WaitForMultipleObjectsEx con el parámetro fAlertable establecido en TRUE).

El tipo LPOVERLAPPED_COMPLETION_ROUTINE define un puntero a esta función de devolución de llamada. FileIOCompletionRoutine es un marcador de posición para el nombre de función definido por la aplicación.

Sintaxis

LPOVERLAPPED_COMPLETION_ROUTINE LpoverlappedCompletionRoutine;

void LpoverlappedCompletionRoutine(
  [in]      DWORD dwErrorCode,
  [in]      DWORD dwNumberOfBytesTransfered,
  [in, out] LPOVERLAPPED lpOverlapped
)
{...}

Parámetros

[in] dwErrorCode

Estado de finalización de E/S. Este parámetro puede ser uno de los códigos de error del sistema.

[in] dwNumberOfBytesTransfered

Número de bytes transferidos. Si se produce un error, este parámetro es cero.

[in, out] lpOverlapped

Puntero a la estructura SUPERPUESTA especificada por la función de E/S asincrónica.

El sistema no usa la estructura SUPERPUESTA después de llamar a la rutina de finalización, por lo que la rutina de finalización puede desasignar la memoria utilizada por la estructura superpuesta.

Valor devuelto

None

Observaciones

El valor devuelto de una operación asincrónica es 0 (ERROR_SUCCESS) si la operación se completó correctamente o si la operación se completó con una advertencia. Para determinar si una operación de E/S se completó correctamente, compruebe que dwErrorCode es 0, llame a GetOverlappedResult y, a continuación, llame a GetLastError. Por ejemplo, si el búfer no era lo suficientemente grande como para recibir todos los datos de una llamada a ReadFileEx, dwErrorCode se establece en 0, se produce un error en GetOverlappedResult y GetLastError devuelve ERROR_MORE_DATA.

La devolución de esta función permite llamar a otra rutina de finalización de E/S pendiente. Se llama a todas las rutinas de finalización en espera antes de que se complete la espera del subproceso alertable con un código de retorno de WAIT_IO_COMPLETION. El sistema puede llamar a las rutinas de finalización en espera en cualquier orden. Pueden llamarse o no en el orden en que se completan las funciones de E/S.

Cada vez que el sistema llama a una rutina de finalización, usa parte de la pila de la aplicación. Si la rutina de finalización realiza esperas asincrónicas y de E/S asincrónicas adicionales, la pila puede crecer.

Para obtener más información, vea Llamadas asincrónicas a procedimientos.

Ejemplos

Para obtener código de ejemplo, vea Servidor de canalización con nombre mediante rutinas de finalización.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado minwinbase.h (incluye Windows.h)

Consulte también

BindIoCompletionCallback

Funciones de administración de archivos

OVERLAPPED

ReadFileEx

SleepEx

E/S sincrónica y asincrónica

WaitForMultipleObjectsEx

WaitForSingleObjectEx

WriteFileEx