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) |