NDK_FN_CREATE_SRQ 콜백 함수(ndkpi.h)
NdkCreateSrq(NDK_FN_CREATE_SRQ) 함수는 NDK SRQ(공유 수신 큐) 개체를 만듭니다.
구문
NDK_FN_CREATE_SRQ NdkFnCreateSrq;
NTSTATUS NdkFnCreateSrq(
[in] NDK_PD *pNdkPd,
[in] ULONG SrqDepth,
[in] ULONG MaxReceiveRequestSge,
[in] ULONG NotifyThreshold,
[in, optional] NDK_FN_SRQ_NOTIFICATION_CALLBACK SrqNotification,
[in, optional] PVOID SrqNotificationContext,
[in, optional] GROUP_AFFINITY *Affinity,
[in] NDK_FN_CREATE_COMPLETION CreateCompletion,
[in, optional] PVOID RequestContext,
NDK_SRQ **ppNdkSrq
)
{...}
매개 변수
[in] pNdkPd
NDK PD(보호 도메인) 개체(NDK_PD)에 대한 포인터입니다.
[in] SrqDepth
SRQ를 통해 미해결될 수 있는 최대 수신 요청 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체에 지정된 MaxSrqDepth 멤버의 값보다 작거나 같아야 합니다.
[in] MaxReceiveRequestSge
단일 수신 요청에서 지원되는 최대 SGE 수입니다. 이 값은 NDK_ADAPTER_INFO 구조체에 지정된 MaxReceiveRequestSge 멤버의 값보다 작거나 같아야 합니다.
[in] NotifyThreshold
SRQ 알림 콜백을 트리거하기 위한 대기 중인 수신 요청의 최소 수입니다.
[in, optional] SrqNotification
대기 중인 수신 요청 수가 NotifyThreshold 매개 변수에 지정된 임계값보다 낮으면 공급자가 호출하는 선택적 NdkSrqNotificationCallback 함수(NDK_FN_SRQ_NOTIFICATION_CALLBACK)입니다.
[in, optional] SrqNotificationContext
NDK 공급자가 SrqNotification 매개 변수에 지정된 NdkSrqNotificationCallback 함수로 다시 전달하는 컨텍스트 값입니다.
[in, optional] Affinity
소비자가 NdkSrqNotificationCallback 콜백을 실행하도록 선택하는 기본 프로세서를 지정하는 선호도 마스크(GROUP_AFFINITY)입니다. 공급자는 기본 하드웨어에서 허용하는 경우 프로세서 기본 설정을 준수해야 하지만 소비자는 기본 프로세서에서만 NdkSrqNotificationCallback 콜백 이 발생한다고 가정할 수 없습니다. 기본 프로세서가 없는 경우 선호도 를 NULL로 설정합니다.
[in] CreateCompletion
NDK 개체 만들기를 완료하는 NdkCreateCompletion (NDK_FN_CREATE_COMPLETION) 함수에 대한 포인터입니다.
[in, optional] RequestContext
NDK 공급자가 CreateCompletion 매개 변수에 지정된 NdkCreateCompletion 함수로 다시 전달하는 컨텍스트 값입니다.
ppNdkSrq
요청이 STATUS_PENDING 반환하지 않고 성공하면 생성된 SRQ 개체(NDK_SRQ)에 대한 포인터가 이 위치에 반환됩니다. 요청이 STATUS_PENDING 반환하는 경우 이 매개 변수는 무시되고 CreateCompletion 매개 변수에 지정된 콜백과 함께 생성된 개체가 반환됩니다.
반환 값
NdkCreateSrq 함수는 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
SRQ 개체가 성공적으로 만들어지고 *ppNdkSrq 매개 변수와 함께 반환되었습니다. |
|
작업이 보류 중이며 나중에 완료됩니다. 공급자는 CreateCompletion 매개 변수(NDK_FN_CREATE_COMPLETION)에 지정된 함수를 호출하여 보류 중인 작업을 완료합니다. |
|
요청된 SrqDepth 또는 MaxReceiveRequestSge 가 NDK_ADAPTER_INFO 구조에 지정된 한도 내에 있지 않으므로 요청이 실패했습니다. |
|
리소스 부족으로 인해 요청이 실패했습니다.
중요 요청은 이 상태 코드와 비동기적으로도 인라인으로 실패할 수 있습니다.
|
|
오류가 발생했습니다. |
설명
NdkCreateSrq 함수는 NDK SRQ(공유 수신 큐) 개체를 만듭니다. 함수가 STATUS_SUCCESS 반환하면 생성된 개체가 ppNdkSrq 매개 변수에 반환됩니다. NdkCreateSrq가 STATUS_PENDING 반환하는 경우 CreateCompletion 매개 변수에 지정된 NdkCreateCompletion(NDK_FN_CREATE_COMPLETION) 함수에 의해 생성된 개체가 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 지원되지 않음, NDIS 6.30 이상에서 지원됨 |
지원되는 최소 서버 | Windows Server 2012 |
대상 플랫폼 | Windows |
헤더 | ndkpi.h(Ndkpi.h 포함) |
IRQL | <=DISPATCH_LEVEL |