Share via


LPFN_RIORESIZEREQUESTQUEUE Rückruffunktion (mswsock.h)

Die RIOResizeRequestQueue-Funktion ändert die Größe einer Anforderungswarteschlange, um für die Verwendung mit den registrierten Winsock-E/A-Erweiterungen entweder größer oder kleiner zu sein.

Syntax

LPFN_RIORESIZEREQUESTQUEUE LpfnRioresizerequestqueue;

BOOL LpfnRioresizerequestqueue(
  RIO_RQ RQ,
  DWORD MaxOutstandingReceive,
  DWORD MaxOutstandingSend
)
{...}

Parameter

RQ

Ein Deskriptor, der einen vorhandenen registrierten E/A-Socketdeskriptor (Anforderungswarteschlange) identifiziert, um die Größe zu ändern.

MaxOutstandingReceive

Die maximale Anzahl ausstehender Sendevorgänge, die für den Socket zulässig sind. Dieser Wert kann größer oder kleiner als die ursprüngliche Zahl sein.

Dieser Parameter ist in der Regel eine kleine Zahl für die meisten Anwendungen.

MaxOutstandingSend

Die maximale Anzahl ausstehender Empfänge, die für den Socket zulässig sind. Dieser Wert kann größer oder kleiner als die ursprüngliche Zahl sein.

Rückgabewert

Wenn kein Fehler auftritt, gibt die RIOResizeRequestQueue-FunktionTRUE zurück. Andernfalls wird der Wert FALSE zurückgegeben, und ein bestimmter Fehlercode kann durch Aufrufen der WSAGetLastError-Funktion abgerufen werden.

Rückgabecode Beschreibung
WSAEINVAL
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn der RQ-Parameter ungültig ist (z. B. RIO_INVALID_RQ). Dieser Fehler wird auch zurückgegeben, wenn die Parameter MaxOutstandingReceive und MaxOutstandingSend 0 sind.
WSAENOBUFS
Es konnte nicht genügend Arbeitsspeicher zugewiesen werden. Dieser Fehler wird zurückgegeben, wenn der Arbeitsspeicher für die Anforderungswarteschlange mit geänderter Größe nicht zugewiesen werden konnte.
WSAETOOMANYREFS
Es gibt zu viele Vorgänge, die weiterhin auf die Anforderungswarteschlange verweisen. Das Ändern der Größe dieser Anforderungswarteschlange auf eine kleinere Größe ist derzeit nicht möglich.

Hinweise

Die RIOResizeRequestQueue-Funktion ändert die Größe einer Anforderungswarteschlange entweder größer oder kleiner. Wenn die Anforderungswarteschlange bereits Einträge enthält, werden diese Einträge in die neue Anforderungswarteschlange kopiert.

Eine Anforderungswarteschlange weist eine erforderliche Mindestgröße auf, die von der aktuellen Anzahl von Einträgen (Anzahl der Gesendeten und Empfangenen in der Anforderungswarteschlange) abhängig ist. Wenn eine Anwendung die RIOResizeRequestQueue-Funktion aufruft und versucht, die Warteschlange für die Anzahl der vorhandenen Einträge zu klein festzulegen, schlägt der Aufruf fehl, und die Größe der Warteschlange wird nicht geändert.

Hinweis

Der Funktionszeiger auf die RIOResizeRequestQueue-Funktion muss zur Laufzeit abgerufen werden, indem die WSAIoctl-Funktion mit dem angegebenen SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER opcode aufgerufen wird. Der an die WSAIoctl-Funktion übergebene Eingabepuffer muss WSAID_MULTIPLE_RIO enthalten, einen global eindeutigen Bezeichner (GUID), dessen Wert die von Winsock registrierten E/A-Erweiterungsfunktionen identifiziert. Bei Erfolg enthält die von der WSAIoctl-Funktion zurückgegebene Ausgabe einen Zeiger auf die RIO_EXTENSION_FUNCTION_TABLE-Struktur , die Zeiger auf die von Winsock registrierten E/A-Erweiterungsfunktionen enthält. Die SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER IOCTL ist in der Headerdatei Ws2def.h definiert. Die WSAID_MULTIPLE_RIO GUID ist in der Headerdatei "Mswsock.h " definiert.

 

Windows Phone 8: Diese Funktion wird für Windows Phone Store-Apps auf Windows Phone 8 und höher unterstützt.

Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps auf Windows 8.1, Windows Server 2012 R2 und höher unterstützt.

Threadsicherheit

Wenn mehrere Threads versuchen, mithilfe der RIODequeueCompletion- oder RIOResizeRequestQueue-Funktion auf dieselbe RIO_RQ zuzugreifen, muss der Zugriff durch einen kritischen Abschnitt, eine schlanke Schreibsperre oder einen ähnlichen Mechanismus für gegenseitigen Ausschluss koordiniert werden. Wenn die Vervollständigungswarteschlangen nicht freigegeben werden, ist kein gegenseitiger Ausschluss erforderlich.

Anforderungen

Anforderung Wert
Header mswsock.h