다음을 통해 공유


FltRetrieveIoPriorityInfo 함수(fltkernel.h)

FltRetrieveIoPriorityInfo 루틴은 미니 필터 드라이버에서 스레드에서 우선 순위 정보를 검색하는 데 사용됩니다.

통사론

NTSTATUS FLTAPI FltRetrieveIoPriorityInfo(
  [in, optional] PFLT_CALLBACK_DATA Data,
  [in, optional] PFILE_OBJECT       FileObject,
  [in, optional] PETHREAD           Thread,
  [in, out]      PIO_PRIORITY_INFO  PriorityInfo
);

매개 변수

[in, optional] Data

I/O 작업을 나타내는 FLT_CALLBACK_DATA 구조체에 대한 선택적 포인터입니다. 이 매개 변수는 NULL 수 있습니다.

[in, optional] FileObject

I/O 작업과 연결된 파일 개체에 대한 선택적 포인터입니다. 이 매개 변수는 NULL 수 있습니다.

[in, optional] Thread

우선 순위 정보를 검색할 스레드에 대한 선택적 포인터입니다. 이 매개 변수는 NULL 수 있습니다.

[in, out] PriorityInfo

지정된 스레드에서 우선 순위 정보를 받는 데 사용되는 IO_PRIORITY_INFO 구조체에 대한 포인터입니다. 이 루틴에서 사용하려면 먼저 적절한 루틴에 의해 IO_PRIORITY_INFO 구조체를 초기화해야 합니다. 자세한 내용은 다음 설명 섹션을 참조하세요.

반환 값

FltRetrieveIoPriorityInfo 루틴은 STATUS_SUCCESS 또는 적절한 NTSTATUS 값을 반환합니다.

발언

FltRetrieveIoPriorityInfo 루틴은 우선 순위 정보를 검색하고 PriorityInfo 매개 변수가 가리키는 구조에 정보를 저장합니다.

일반적으로 FltRetrieveIoPriorityInfo 루틴은 FltApplyPriorityInfoThread 루틴과 함께 사용하여 스레드의 I/O 우선 순위, 페이징 우선 순위 및 스레드 우선 순위를 저장하고 설정합니다.

Thread 매개 변수가 NULL경우 스레드의 페이징 우선 순위 및 스레드 우선 순위가 검색되어 PriorityInfo 매개 변수가 가리키는 IO_PRIORITY_INFO 구조의 PagePriorityThreadPriority 멤버에 배치됩니다. Thread 매개 변수가 NULL 경우 IO_PRIORITY_INFO 구조체의 ThreadPriorityPagePriority 멤버는 시스템에서 스레드의 페이징 및 스레드 우선 순위를 변경해서는 안 됨을 나타내는 sentinel 값으로 표시됩니다. 이러한 센티넬 값은 명시적으로 변경될 때까지 계속 적용됩니다.

다음 의사 코드 예제에서는 PriorityInfo 매개 변수가 가리키는 IO_PRIORITY_INFO 구조체의 IoPriority 멤버에서 검색하고 배치하는 I/O 우선 순위 값을 설명합니다.

Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the normal I/O priority value.
IF Data is not NULL and represents an IRP-based operation and has I/O priority information available THEN
    Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Data's I/O priority value.
ELSE IF the FileObject parameter is not NULL and has I/O priority information available THEN
    Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the FileObject's I/O priority value.
ELSE IF the Thread parameter is not NULL THEN
    Set the IoPriority member of the structure pointed to by the PriorityInfo parameter to the Thread's I/O priority value.

메모

PriorityInfo 매개 변수가 가리키는 IO_PRIORITY_INFO 구조가 초기화되지 않은 경우 이 루틴을 호출하기 전에 IoInitializePriorityInfo 루틴을 호출하여 이 루틴을 호출해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 이 루틴은 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 Fltmgr.lib
DLL FltMgr.sys
IRQL <= DISPATCH_LEVEL

참고 항목

FLT_CALLBACK_DATA

FltApplyPriorityInfoThread

FltGetIoPriorityHint

FltGetIoPriorityHintFromCallbackData

FltGetIoPriorityHintFromFileObject

FltGetIoPriorityHintFromThread

FltRetrieveIoPriorityInfo

FltSetIoPriorityHintIntoCallbackData

FltSetIoPriorityHintIntoFileObject

FltSetIoPriorityHintIntoThread

IO_PRIORITY_INFO

IoInitializePriorityInfo

PsGetCurrentThread