다음을 통해 공유


일반 프레임워크 개체 사용

일반 프레임워크 개체는 다른 모든 유형의 프레임워크 개체가 파생되는 프레임워크 개체입니다.

다른 프레임워크 개체와 마찬가지로 일반 개체는 프레임워크 개체 소개에 설명된 대로 참조 수, 컨텍스트 공간, 삭제 콜백 함수 및 부모 개체 를 지원합니다.

드라이버는 일반 프레임워크 개체를 만들고 사용할 수 있습니다. 드라이버가 WdfObjectCreate 를 호출하여 일반 개체를 만드는 경우 드라이버는 다음을 수행할 수 있습니다.

  • 각 일반 개체에 대해 하나 이상의 컨텍스트 공간을 만듭니다.

    개체 컨텍스트 공간을 사용하여 일반 개체와 연결하려는 시스템 리소스에 대한 정보를 저장할 수 있습니다.

    컨텍스트 공간에 대한 자세한 내용은 Framework 개체 컨텍스트 공간을 참조하세요.

  • 일반 개체에 부모를 할당합니다.

    부모 개체가 삭제되면 일반 개체가 삭제됩니다. 예를 들어 드라이버가 프레임워크 디바이스 개체를 일반 개체 중 하나의 부모 개체로 지정하는 경우 프레임워크는 디바이스 개체를 삭제할 때 일반 개체를 삭제합니다.

    드라이버는 개체의 WDF_OBJECT_ATTRIBUTES 구조체의 ParentObject 멤버를 설정하여 개체의 부모 개체를 지정합니다.

  • 삭제 콜백 함수를 제공합니다.

    드라이버는 일반 개체를 만들 때 드라이버가 할당한 시스템 리소스의 할당을 취소할 수 있는 EvtCleanupCallbackEvtDestroyCallback 함수를 제공할 수 있습니다. 예를 들어 드라이버가 일반 개체를 만들 때 ExAllocatePool 을 호출하는 경우 정리 또는 삭제 콜백 함수는 ExFreePool을 호출할 수 있습니다.

일반 개체를 사용하면 드라이버 할당 리소스를 관리하는 편리한 방법이 될 수 있습니다. 예를 들어, 드라이버가 여러 디바이스에 요청을 보내거나 요청을 더 작은 디바이스로 분할하는 경우 상위 수준 드라이버는 수신된 I/O 요청을 처리하기 위해 여러 메모리 할당이 필요할 수 있습니다. 드라이버는 수신된 I/O 요청의 자식인 하나 이상의 일반 개체를 만들 수 있으며, 메모리 할당에 대한 정보를 일반 개체의 컨텍스트 공간에 저장할 수 있습니다.