LPFN_RIORESIZEREQUESTQUEUE función de devolución de llamada (mswsock.h)
La función RIOResizeRequestQueue cambia el tamaño de una cola de solicitudes para que sea mayor o menor para su uso con las extensiones de E/S registradas de Winsock.
Sintaxis
LPFN_RIORESIZEREQUESTQUEUE LpfnRioresizerequestqueue;
BOOL LpfnRioresizerequestqueue(
RIO_RQ RQ,
DWORD MaxOutstandingReceive,
DWORD MaxOutstandingSend
)
{...}
Parámetros
RQ
Descriptor que identifica un descriptor de socket de E/S registrado existente (cola de solicitudes) para cambiar el tamaño.
MaxOutstandingReceive
Número máximo de envíos pendientes permitidos en el socket. Este valor puede ser mayor o menor que el número original.
Este parámetro suele ser un número pequeño para la mayoría de las aplicaciones.
MaxOutstandingSend
Número máximo de recepciones pendientes permitidas en el socket. Este valor puede ser mayor o menor que el número original.
Valor devuelto
Si no se produce ningún error, la función RIOResizeRequestQueue devuelve TRUE. De lo contrario, se devuelve un valor false y se puede recuperar un código de error específico llamando a la función WSAGetLastError .
Código devuelto | Descripción |
---|---|
Se pasó un parámetro no válido a la función. Este error se devuelve si el parámetro RQ no es válido (por ejemplo, RIO_INVALID_RQ). Este error también se devuelve si los parámetros MaxOutstandingReceive y MaxOutstandingSend son cero. |
|
No se pudo asignar memoria suficiente. Este error se devuelve si no se pudo asignar memoria para la cola de solicitudes con cambio de tamaño. |
|
Hay demasiadas operaciones que todavía hacen referencia a la cola de solicitudes. El cambio de tamaño de esta cola de solicitudes para que sea menor no es posible en este momento. |
Comentarios
La función RIOResizeRequestQueue cambia el tamaño de una cola de solicitudes para que sea mayor o menor. Si la cola de solicitudes ya contiene entradas, esas entradas se copiarán en la nueva cola de solicitudes.
Una cola de solicitudes tiene un tamaño mínimo necesario que depende del número actual de entradas (número de envíos y recepción en la cola de solicitudes). Si una aplicación llama a la función RIOResizeRequestQueue e intenta establecer la cola demasiado pequeña para el número de entradas existentes, se producirá un error en la llamada y no se cambiará el tamaño de la cola.
Nota
El puntero de función a la función RIOResizeRequestQueue se debe obtener en tiempo de ejecución realizando una llamada a la función WSAIoctl con el código de operación SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER especificado. El búfer de entrada pasado a la función WSAIoctl debe contener WSAID_MULTIPLE_RIO, un identificador único global (GUID) cuyo valor identifica las funciones de extensión de E/S registradas de Winsock. Si se ejecuta correctamente, la salida devuela por la función WSAIoctl contiene un puntero a la estructura de RIO_EXTENSION_FUNCTION_TABLE que contiene punteros a las funciones de extensión de E/S registradas de Winsock. El SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER IOCTL se define en el archivo de encabezado Ws2def.h . El GUID de WSAID_MULTIPLE_RIO se define en el archivo de encabezado Mswsock.h .
Windows Phone 8: esta función es compatible con las aplicaciones de Windows Phone Store en Windows Phone 8 y versiones posteriores.
Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.
Seguridad para subprocesos
Si varios subprocesos intentan acceder al mismo RIO_RQ mediante la función RIODequeueCompletion o RIOResizeRequestQueue , el acceso debe coordinarse mediante una sección crítica, un bloqueo del escritor de lector delgado o un mecanismo de exclusión mutua similar. Si las colas de finalización no se comparten, no es necesaria la exclusión mutua.
Requisitos
Requisito | Valor |
---|---|
Header | mswsock.h |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de