NDK_FN_CREATE_QP 콜백 함수(ndkpi.h)

NdkCreateQp(NDK_FN_CREATE_QP) 함수는 NDK QP(큐 쌍) 개체를 만듭니다.

구문

NDK_FN_CREATE_QP NdkFnCreateQp;

NTSTATUS NdkFnCreateQp(
  [in]           NDK_PD *pNdkPd,
  [in]           NDK_CQ *pReceiveCq,
  [in]           NDK_CQ *pInitiatorCq,
  [in, optional] PVOID QPContext,
  [in]           ULONG ReceiveQueueDepth,
  [in]           ULONG InitiatorQueueDepth,
  [in]           ULONG MaxReceiveRequestSge,
  [in]           ULONG MaxInitiatorRequestSge,
  [in]           ULONG InlineDataSize,
  [in]           NDK_FN_CREATE_COMPLETION CreateCompletion,
  [in, optional] PVOID RequestContext,
                 NDK_QP **ppNdkQp
)
{...}

매개 변수

[in] pNdkPd

PD(NDK 보호 도메인) 개체(NDK_PD)에 대한 포인터입니다.

[in] pReceiveCq

수신 요청 완료(NDK_CQ)에 사용할 CQ(완료 큐)에 대한 포인터입니다.

[in] pInitiatorCq

초기자 요청 완료에 사용할 CQ에 대한 포인터입니다.

[in, optional] QPContext

이 QP를 통해 게시된 모든 요청에 대해 NDK_RESULT 구조의 QPContext 멤버에 반환되는 컨텍스트 값입니다.

[in] ReceiveQueueDepth

QP를 통해 처리할 수 있는 최대 수신 요청 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체의 MaxReceiveQueueDepth 멤버의 값보다 작거나 같아야 합니다.

[in] InitiatorQueueDepth

QP를 통해 처리할 수 있는 초기자 요청의 최대 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체의 MaxInitiatorQueueDepth 멤버의 값보다 작거나 같아야 합니다.

[in] MaxReceiveRequestSge

단일 수신 요청에서 지원될 수 있는 최대 SGE 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체의 MaxReceiveRequestSge 멤버의 값보다 작거나 같아야 합니다.

[in] MaxInitiatorRequestSge

단일 초기자 요청에서 지원될 수 있는 최대 SGE 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체의 MaxInitiatorRequestSge 멤버의 값보다 작거나 같아야 합니다.

[in] InlineDataSize

단일 송신 또는 쓰기 요청으로 보낼 수 있는 최대 인라인 데이터 양(바이트)입니다. 이 값은 NDK_ADAPTER_INFO 구조체의 MaxInlineDataSize 멤버의 값보다 작거나 같아야 합니다.

[in] CreateCompletion

NDK 개체 만들기를 완료하는 NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 함수에 대한 포인터입니다.

[in, optional] RequestContext

NDK 공급자가 CreateCompletion 매개 변수에 지정된 NdkCreateCompletion 함수로 다시 전달하는 컨텍스트 값입니다.

ppNdkQp

요청이 STATUS_PENDING 반환하지 않고 성공하면 생성된 QP 개체(NDK_QP)에 대한 포인터가 이 위치에 반환됩니다. 요청이 STATUS_PENDING 반환하면 이 매개 변수가 무시되고 CreateCompletion 매개 변수에 지정된 콜백과 함께 생성된 개체가 반환됩니다.

반환 값

NdkCreateQp 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
QP 개체가 성공적으로 만들어지고 *ppNdkQp 매개 변수와 함께 반환되었습니다.
STATUS_PENDING
작업이 보류 중이며 나중에 완료됩니다. 공급자는 CreateCompletion 매개 변수(NDK_FN_CREATE_COMPLETION)에 지정된 함수를 호출하여 보류 중인 작업을 완료합니다.
STATUS_INVALID_PARAMETER
요청된 ReceiveQueueDepth, InitiatorQueueDepth, MaxReceiveRequestSge, MaxInitiatorRequestSge 또는 InlineDataSizeNDK_ADAPTER_INFO 구조체에 지정된 한도 내에 있지 않기 때문에 요청이 실패했습니다.
STATUS_INSUFFICIENT_RESOURCES
리소스가 부족하여 요청이 실패했습니다.
중요 이 상태 코드에서는 요청이 인라인뿐만 아니라 비동기적으로 실패할 수 있습니다.
 
기타 상태 코드
오류가 발생했습니다.

설명

NdkCreateQp 함수는 NDK QP(큐 쌍) 개체를 만듭니다. QP는 수신 큐와 초기자 큐로 구성됩니다. 수신 큐는 수신 요청을 게시하는 데 사용됩니다. 초기자 큐는 보내기, 바인딩, 빠른 등록, 읽기, 쓰기 및 무효화 요청을 시작하는 데 사용됩니다.

함수가 STATUS_SUCCESS 반환하면 생성된 개체가 ppNdkQp 매개 변수에 반환됩니다. NdkCreateQp가 STATUS_PENDING 반환하면 CreateCompletion 매개 변수에 지정된 NdkCreateCompletion(NDK_FN_CREATE_COMPLETION) 함수에 의해 생성된 개체가 반환됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.30 이상에서는 지원되지 않습니다.
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 Windows
헤더 ndkpi.h(Ndkpi.h 포함)
IRQL <=DISPATCH_LEVEL

추가 정보

NDKPI 개체 수명 요구 사항

NDK_ADAPTER_INFO

NDK_CQ

NDK_FN_CREATE_COMPLETION

NDK_PD

NDK_QP

NDK_RESULT