다음을 통해 공유


NdisFreeMemory 함수(ndis.h)

NdisFreeMemory 함수는 이전에 NdisAllocateMemoryWithTagPriority 함수와 함께 할당된 메모리 블록을 해제합니다.

구문

void NdisFreeMemory(
  [in] PVOID VirtualAddress,
  [in] UINT  Length,
  [in] UINT  MemoryFlags
);

매개 변수

[in] VirtualAddress

할당된 메모리의 기본 가상 주소에 대한 포인터입니다. 이 주소는 NdisAllocateMemoryWithTagPriority 함수에 의해 반환되었습니다.

[in] Length

해제할 메모리 블록의 크기(바이트)입니다. 메모리가 NdisAllocateMemoryWithTagPriority 로 할당되었거나 MemoryFlags 매개 변수가 0이면 이 매개 변수는 무시됩니다.

[in] MemoryFlags

해제할 메모리 유형을 지정하는 플래그 집합입니다. 메모리가 NdisAllocateMemoryWithTagPriority로 할당된 경우 이 값은 0이어야 합니다. NDIS 6.0 이상 버전에서는 NdisAllocateMemoryWithTagPriority 가 항상 메모리를 할당하는 데 사용됩니다.

반환 값

없음

설명

캐시되지 않은 메모리 및 연속 메모리는 할당하는 미니포트 드라이버가 언로드될 때까지 거의 해제되지 않으므로 일반적으로 NdisFreeMemory 호출자는 이러한 유형의 할당 취소에 대해 IRQL = PASSIVE_LEVEL 실행됩니다. 어떤 경우든 다음을 수행합니다.

  • 연속 메모리를 해제할 때 NdisFreeMemory 호출자는 IRQL = PASSIVE_LEVEL 실행되어야 합니다.
  • 캐시되지 않은 메모리를 해제할 때 NdisFreeMemory 호출자는 IRQL < DISPATCH_LEVEL 실행되어야 합니다.
  • 연속되거나 캐시되지 않은 메모리를 해제할 때 NdisFreeMemory 호출자는 IRQL <= DISPATCH_LEVEL 실행되어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(NdisFreeMemory(NDIS 5.1 참조))에 대해 지원됩니다. Windows XP의 NDIS 5.1 드라이버(NdisFreeMemory(NDIS 5.1 참조))에 대해 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL 설명 섹션을 참조하세요.
DDI 규정 준수 규칙 Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

추가 정보

MiniportHaltEx

NdisAllocateMemoryWithTagPriority