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