다음을 통해 공유


LPFN_RIORESIZEREQUESTQUEUE 콜백 함수(mswsock.h)

RIOResizeRequestQueue 함수는 Winsock 등록 I/O 확장에 사용하기 위해 요청 큐의 크기를 더 크거나 작게 조정합니다.

구문

LPFN_RIORESIZEREQUESTQUEUE LpfnRioresizerequestqueue;

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

매개 변수

RQ

크기를 조정할 기존 등록된 I/O 소켓 설명자(요청 큐)를 식별하는 설명자입니다.

MaxOutstandingReceive

소켓에서 허용되는 미해결 송신의 최대 수입니다. 이 값은 원래 숫자보다 크거나 작을 수 있습니다.

이 매개 변수는 일반적으로 대부분의 애플리케이션에 대해 작은 수입니다.

MaxOutstandingSend

소켓에서 허용되는 미해결 수신의 최대 수입니다. 이 값은 원래 숫자보다 크거나 작을 수 있습니다.

반환 값

오류가 발생하지 않으면 RIOResizeRequestQueue 함수는 TRUE를 반환합니다. 그렇지 않으면 FALSE 값이 반환되고 WSAGetLastError 함수를 호출하여 특정 오류 코드를 검색할 수 있습니다.

반환 코드 설명
WSAEINVAL
잘못된 매개 변수가 함수에 전달되었습니다. RQ 매개 변수가 유효하지 않으면 이 오류가 반환됩니다(예: RIO_INVALID_RQ). MaxOutstandingReceiveMaxOutstandingSend 매개 변수가 모두 0인 경우에도 이 오류가 반환됩니다.
WSAENOBUFS
충분한 메모리를 할당할 수 없습니다. 크기가 조정된 요청 큐에 메모리를 할당할 수 없는 경우 이 오류가 반환됩니다.
WSAETOOMANYREFS
요청 큐를 참조하는 작업이 너무 많습니다. 이 요청 큐의 크기를 더 작게 조정할 수 없습니다.

설명

RIOResizeRequestQueue 함수는 요청 큐의 크기를 더 크거나 작게 조정합니다. 요청 큐에 이미 항목이 포함된 경우 해당 항목이 새 요청 큐로 복사됩니다.

요청 큐에는 현재 항목 수(요청 큐의 송신 및 수신 수)에 따라 달라지는 필수 최소 크기가 있습니다. 애플리케이션이 RIOResizeRequestQueue 함수를 호출하고 기존 항목 수에 대해 큐를 너무 작게 설정하려고 하면 호출이 실패하고 큐의 크기가 조정되지 않습니다.

참고

지정된 SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER opcode를 사용하여 WSAIoctl 함수를 호출하여 런타임에 RIOResizeRequestQueue 함수에 대한 함수 포인터를 가져와야 합니다. WSAIoctl 함수에 전달된 입력 버퍼에는 값이 Winsock 등록 I/O 확장 함수를 식별하는 GUID(Globally Unique Identifier)인 WSAID_MULTIPLE_RIO 포함되어야 합니다. 성공하면 WSAIoctl 함수에서 반환된 출력에는 Winsock 등록 I/O 확장 함수에 대한 포인터가 포함된 RIO_EXTENSION_FUNCTION_TABLE 구조체에 대한 포인터가 포함됩니다. SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER IOCTL은 Ws2def.h 헤더 파일에 정의되어 있습니다. WSAID_MULTIPLE_RIO GUID는 Mswsock.h 헤더 파일에 정의되어 있습니다.

 

Windows Phone 8: 이 함수는 Windows Phone 8 이상에서 Windows Phone 스토어 앱에서 지원됩니다.

Windows 8.1Windows Server 2012 R2: 이 함수는 Windows 8.1, Windows Server 2012 R2 이상에서 Windows 스토어 앱에서 지원됩니다.

스레드 보안

여러 스레드가 RIODequeueCompletion 또는 RIOResizeRequestQueue 함수를 사용하여 동일한 RIO_RQ 액세스하려는 경우 중요한 섹션, 슬림 판독기 기록기 잠금 또는 유사한 상호 제외 메커니즘을 통해 액세스를 조정해야 합니다. 완료 큐가 공유되지 않는 경우 상호 제외가 필요하지 않습니다.

요구 사항

요구 사항
헤더 mswsock.h