MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 콜백 함수(ndis.h)

NDIS는 미니포트 드라이버의 MiniportSharedMemoryAllocateComplete 함수를 호출하여 미니포트 드라이버가 를 호출하여 시작한 공유 메모리 할당 요청을 완료합니다. NdisMAllocateSharedMemoryAsyncEx 함수입니다.

참고MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.
 

구문

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MiniportAllocateSharedMemComplete;

void MiniportAllocateSharedMemComplete(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] PVOID VirtualAddress,
  [in] PNDIS_PHYSICAL_ADDRESS PhysicalAddress,
  [in] ULONG Length,
  [in] PVOID Context
)
{...}

매개 변수

[in] MiniportAdapterContext

드라이버가 NIC에 대한 상태 정보를 유지하는 미니포트 드라이버에 의해 할당된 컨텍스트 영역에 대한 핸들입니다. 드라이버는 에서 이 컨텍스트 영역을 할당합니다. MiniportInitializeEx 함수입니다.

[in] VirtualAddress

NdisMAllocateSharedMemoryAsyncEx를 호출하여 미니포트 드라이버가 할당한 공유 메모리의 기본 가상 주소입니다. 할당 시도가 실패한 경우 VirtualAddressNULL입니다.

[in] PhysicalAddress

VirtualAddress 매개 변수가 지정하는 주소에 매핑되는 NIC에서 사용할 기본 실제 주소입니다.

[in] Length

NdisMAllocateSharedMemoryAsyncEx가 할당한 바이트 수입니다.

[in] Context

NdisMAllocateSharedMemoryAsyncEx에 대한 이전 호출에서 미니포트 드라이버가 지정한 컨텍스트 영역에 대한 포인터입니다.

반환 값

없음

설명

MiniportAllocateSharedMemoryComplete 는 미니포트 드라이버에 대한 선택적 함수입니다. 미니포트 드라이버는 드라이버가 에 전달한 NDIS_SG_DMA_DESCRIPTION 구조에 MiniportAllocateSharedMemoryComplete 함수를 등록합니다. NdisMRegisterScatterGatherDma 함수입니다.

미니포트 드라이버 호출 NdisMAllocateSharedMemoryAsyncEx 를 사용하여 공유 메모리를 할당합니다. NdisMAllocateSharedMemoryAsyncEx가 NDIS_STATUS_PENDING 반환하는 경우 NDIS는 MiniportAllocateSharedMemoryComplete를 호출하여 메모리를 미니포트 드라이버에 전달합니다.

NDIS는 IRQL PASSIVE_LEVEL MiniportSharedMemoryAllocateComplete 를 호출합니다.

MiniportSharedMemoryAllocateComplete 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾는 데 도움이 되며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MySharedMemoryAllocateComplete"라는 MiniportSharedMemoryAllocateComplete 함수를 정의하려면 이 코드 예제와 같이 MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 형식을 사용합니다.

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE MySharedMemoryAllocateComplete;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MySharedMemoryAllocateComplete(
    NDIS_HANDLE  MiniportAdapterContext,
    PVOID  VirtualAddress,
    PNDIS_PHYSICAL_ADDRESS  PhysicalAddress,
    ULONG  Length,
    PVOID  Context
    )
  {...}

MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 함수 형식은 Ndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 MINIPORT_ALLOCATE_SHARED_MEM_COMPLETE 함수 형식에 적용되는 주석이 사용되는지 확인합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작에 주석을 추가를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
대상 플랫폼 Windows
헤더 ndis.h(Ndis.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

MiniportInitializeEx

NdisMAllocateSharedMemoryAsyncEx NdisMRegisterScatterGatherDma