다음을 통해 공유


EVT_SERCX_FILECLEANUP 콜백 함수(sercx.h)

EvtSerCxFileCleanup 이벤트 콜백 함수는 직렬 컨트롤러 드라이버에 클라이언트가 직렬 컨트롤러 디바이스를 나타내는 파일 개체에 대한 마지막 핸들을 닫았다는 것을 알 수 있습니다.

구문

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

void EvtSercxFilecleanup(
  [in] WDFDEVICE Device
)
{...}

매개 변수

[in] Device

직렬 컨트롤러를 나타내는 프레임워크 디바이스 개체에 대한 WDFDEVICE 핸들입니다.

반환 값

없음

설명

이 함수는 드라이버가 파일 개체의 수명 동안 이전에 할당한 특정 시스템 리소스의 할당을 취소할 수 있습니다. EvtSerCxFileClose 함수와 함께 EvtSerCxFileCleanup 함수는 데이터를 수신하고 전송할 준비가 된 상태에서 직렬 컨트롤러 디바이스를 제거해야 합니다. EvtSerCxFileCleanup 함수는 특히 메모리 할당 취소와 같은 클린 작업에 집중해야 합니다.

직렬 컨트롤러 드라이버가 이전에 닫힌 파일 개체의 수명 동안만 메모리를 할당한 경우 드라이버는 EvtSerCxFileCleanup 또는 EvtSerCxFileClose 함수에서 이 메모리의 할당을 취소해야 합니다.

일반적으로 인터럽트는 파일 개체가 해제된 후에만 사용하지 않도록 설정해야 합니다. 따라서 EvtSerCxFileCleanup 함수가 아닌 EvtSerCxFileClose 함수는 인터럽트를 사용하지 않도록 설정해야 합니다.

SerCx는 파일 개체에 대한 마지막 핸들이 닫힌 후 드라이버의 EvtSerCxFileCleanup 함수를 호출합니다. 미해결 I/O 요청으로 인해 이 개체는 아직 해제되지 않았을 수 있습니다. 이 호출 후 드라이버는 I/O 작업에 대한 새 요청을 받지 않습니다.

SerCx는 드라이버의 EvtSerCxFileCleanup 함수를 호출한 후 드라이버의 EvtSerCxFileClose 함수를 호출합니다. SerCx는 파일 개체가 해제된 후 EvtSerCxFileClose 함수를 호출합니다. 이 함수는 모든 미해결 I/O 요청이 완료되거나 취소된 경우에만 발생합니다.

EvtSerCxFileCleanup 함수는 선택 사항입니다. 직렬 컨트롤러 드라이버가 이 함수를 구현하지 않는 경우 드라이버의 EvtSerCxFileClose 함수는 마지막 파일 핸들이 닫힌 후 필요한 모든 클린 작업을 처리해야 합니다.

EvtSerCxFileCleanup 콜백 함수를 등록하려면 드라이버가 SerCxInitialize 메서드를 호출해야 합니다.

자세한 내용은 프레임워크 파일 개체를 참조하세요.

예제

이 콜백에 대한 함수 형식은 다음과 같이 Sercx.h에서 선언됩니다.

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

라는 MyEvtSerCxFileCleanupEvtSerCxFileCleanup 콜백 함수를 정의하려면 먼저 다음과 같이 정적 드라이버 검증 도구(SDV) 및 기타 확인 도구에 필요한 함수 선언을 제공해야 합니다.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

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

VOID
  MyEvtSerCxFileCleanup(
    __in WDFDEVICE Device
    )
{ ... }

함수 선언에 대한 SDV 요구 사항에 대한 자세한 내용은 KMDF 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 sercx.h
IRQL IRQL <= DISPATCH_LEVEL 호출

추가 정보

EvtSerCxFileClose

SerCxInitialize