다음을 통해 공유


ALE 엔드포인트 수명 관리

ALE(애플리케이션 계층 적용)을 지원하는 설명선 드라이버는 표시를 처리하기 위해 리소스를 할당해야 할 수 있습니다. 이 항목에서는 연결된 엔드포인트가 닫혀 있을 때 이러한 리소스를 해제하도록 설명선 드라이버를 구성하는 방법에 대해 설명합니다. ALE 엔드포인트 수명 관리는 Windows 7 이상 버전의 Windows에서 지원됩니다.

ALE 엔드포인트와 연결된 리소스를 관리하기 위해 설명선 드라이버는 다음 계층에 등록할 수 있습니다.

  • FWPS_LAYER_ALE_RESOURCE_RELEASE_V4(FWPM_LAYER_ALE_RESOURCE_RELEASE_V4)

  • FWPS_LAYER_ALE_RESOURCE_RELEASE_V6(FWPM_LAYER_ALE_RESOURCE_RELEASE_V6)

  • FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V4(FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4)

  • FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V6(FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V6)

ALE 리소스 릴리스 계층은 해당 ALE 리소스 할당 계층(예: FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4)의 모든 표시에 대해 표시됩니다. 설명선 드라이버가 릴리스 계층과 할당 계층을 일치시킬 수 있도록 하기 위해 FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE 메타데이터 필드는 두 계층 모두에서 제공되며 각 엔드포인트에는 고유한 핸들이 할당됩니다.

ALE 엔드포인트 클로저 계층은 엔드포인트 유형에 따라 다르게 호출됩니다. TCP 연결의 경우 ALE 엔드포인트 닫기는 모든 ALE 권한 부여 연결 계층(예: FWPS_LAYER_ALE_AUTH_CONNECT_V4) 또는 ALE 권한 부여 수신 허용 계층(예: FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4) 표시에 대해 표시됩니다. ALE 리소스 릴리스 표시와 마찬가지로 엔진은 각 엔드포인트에 대해 고유한 핸들을 할당하고 FWPS_METADATA_FIELD_TRANSPORT_ENDPOINT_HANDLE 메타데이터 필드에 전달합니다. TCP가 아닌 엔드포인트의 경우 소켓이 통신하는 고유한 원격 피어 수에 관계없이 각 엔드포인트에 대해 ALE 엔드포인트 클로저 계층이 호출됩니다. 또한 ALE 엔드포인트 클로저 계층은 각 TCP 수신 대기 소켓에 대해 호출됩니다.

ALE 엔드포인트 클로저 계층에 등록된 설명선은 분류를 보류할 수 있습니다. 이렇게 하면 엔드포인트가 종료되기 전에 비동기 처리를 위해 대기 중인 모든 패킷을 콜아웃에서 다시 내포할 수 있습니다. 분류 보류 중이면 설명선 드라이버는 FwpsPendClassify0 을 호출한 다음 처리가 완료되면 FwpsCompleteClassify0 을 호출해야 합니다.

해당하는 경우 엔진은 FWPS_METADATA_FIELD_PARENT_ENDPOINT_HANDLE 메타데이터 필드에서 부모 엔드포인트에 대한 고유 핸들을 나타냅니다. 이렇게 하면 필요한 경우 설명선 드라이버가 부모/자식 관계를 추적할 수 있습니다.