FLT_CONTEXT_REGISTRATION 구조체(fltkernel.h)

FLT_CONTEXT_REGISTRATION 구조체는 컨텍스트 형식을 등록하는 데 사용됩니다.

구문

typedef struct _FLT_CONTEXT_REGISTRATION {
  FLT_CONTEXT_TYPE               ContextType;
  FLT_CONTEXT_REGISTRATION_FLAGS Flags;
  PFLT_CONTEXT_CLEANUP_CALLBACK  ContextCleanupCallback;
  SIZE_T                         Size;
  ULONG                          PoolTag;
  PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
  PFLT_CONTEXT_FREE_CALLBACK     ContextFreeCallback;
  PVOID                          Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;

멤버

ContextType

컨텍스트의 유형입니다. 이 멤버는 필수이며 다음 값 중 하나여야 합니다.

FLT_FILE_CONTEXT(Windows Vista 이상만 해당)

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT(Windows 8 이상만 해당)

FLT_TRANSACTION_CONTEXT(Windows Vista 이상만 해당)

FLT_VOLUME_CONTEXT

Flags

필터 관리자가 고정 크기 컨텍스트의 lookaside 목록에서 새 컨텍스트를 할당하는 방법을 지정하는 플래그의 비트 마스크입니다. 이 멤버는 0 또는 다음 값일 수 있습니다.

플래그 의미
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH 미니필터가 고정 크기 컨텍스트를 사용하고 이 플래그를 지정하면 lookaside 목록의 컨텍스트 크기가 요청된 크기보다 크거나 같은 경우 필터 관리자는 lookaside 목록에서 컨텍스트를 할당합니다. 그렇지 않으면 필터 관리자는 lookaside 목록의 컨텍스트 크기가 요청된 크기와 동일한 경우에만 lookaside 목록의 컨텍스트를 할당합니다.

ContextCleanupCallback

PFLT_CONTEXT_CLEANUP_CALLBACK 형식의 미니필터 정의 ContextCleanupCallback 루틴에 대한 포인터입니다. 필터 관리자는 컨텍스트를 삭제하기 직전에 이 루틴을 호출합니다. 미니필터에 컨텍스트 내에서 클린 대한 메모리 또는 포인터가 없는 경우 이 멤버는 선택 사항이며 NULL일 수 있습니다.

Size

미니필터가 고정 크기 컨텍스트를 사용하는 경우 컨텍스트의 미니필터 정의 부분의 크기(바이트)입니다. 0은 유효한 크기 값입니다. 미니필터가 가변 크기 컨텍스트를 사용하는 경우 이 멤버는 필수이며 FLT_VARIABLE_SIZED_CONTEXTS 설정해야 합니다.

PoolTag

컨텍스트에 사용할 풀 태그 값입니다. 1~4개의 7비트 ASCII 문자 문자열로 지정된 이 태그는 발생하는 시스템의 크래시 덤프에 나타납니다. ContextAllocateCallback 멤버가 NULL인 경우 이 멤버는 필수이며 0일 수 없습니다.

ContextAllocateCallback

PFLT_CONTEXT_ALLOCATE_CALLBACK 형식의 미니필터 정의 ContextAllocateCallback 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. NULL이 아니면 SizePoolTag 멤버가 무시됩니다.

ContextFreeCallback

PFLT_CONTEXT_FREE_CALLBACK 형식의 미니필터 정의 ContextFreeCallback 루틴에 대한 포인터입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. NULL이 아니면 SizePoolTag 멤버가 무시됩니다.

Reserved1

시스템에서 사용하도록 예약되었습니다. 미니필터는 이 멤버를 NULL로 설정해야 합니다.

설명

미니필터가 DriverEntry 루틴에서 FltRegisterFilter를 호출하는 경우 사용하는 각 컨텍스트 형식을 등록해야 합니다.

이러한 컨텍스트 형식을 등록하기 위해 미니필터는 FLT_CONTEXT_REGISTRATION 구조체의 가변 길이 배열을 만들고 미니필터가 FltRegisterFilterRegistration 매개 변수로 전달하는 FLT_REGISTRATION 구조체의 ContextRegistration 멤버에 배열에 대한 포인터를 저장합니다. 이 배열의 마지막 요소는 {FLT_CONTEXT_END}이어야 합니다.

미니필터가 사용하는 각 컨텍스트 형식에 대해 미니필터는 다음 규칙에 따라 하나 이상의 FLT_CONTEXT_REGISTRATION 구조를 제공해야 합니다.

  • 미니필터가 NULL이 아닌 ContextAllocateCallback 멤버를 사용하여 FLT_CONTEXT_REGISTRATION 구조를 제공하는 경우 해당 컨텍스트 형식에 대한 추가 FLT_CONTEXT_REGISTRATION 구조를 제공할 수 없습니다.
  • 미니필터가 두 개 이상의 동일한 FLT_CONTEXT_REGISTRATION 구조를 제공하는 경우 첫 번째 구조체만 사용됩니다. 다른 항목은 무시됩니다.
  • 각 컨텍스트 형식에 대해 Size 멤버가 FLT_VARIABLE_SIZED_CONTEXTS FLT_CONTEXT_REGISTRATION 구조체를 하나만 제공할 수 있습니다.
  • 각 컨텍스트 형식에 대해 size 멤버가 FLT_VARIABLE_SIZED_CONTEXTS 이외의 3개 FLT_CONTEXT_REGISTRATION 구조체를 제공할 수 없습니다.

요구 사항

요구 사항
헤더 fltkernel.h(Fltkernel.h 포함)

추가 정보

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_ALLOCATE_CALLBACK

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK