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 구조체의 PagePriority 및 ThreadPriority 멤버에 배치됩니다. Thread 매개 변수가 NULL인 경우 IO_PRIORITY_INFO 구조체의 ThreadPriority 및 PagePriority 멤버는 시스템에서 스레드의 페이징 및 스레드 우선 순위를 변경하지 않아야 함을 나타내는 sentinel 값으로 표시됩니다. 이러한 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 |
추가 정보
FltGetIoPriorityHintFromCallbackData
FltGetIoPriorityHintFromFileObject
FltGetIoPriorityHintFromThread
FltSetIoPriorityHintIntoCallbackData
FltSetIoPriorityHintIntoFileObject