Функция FsRtlOplockGetAnyBreakOwnerProcess (ntifs.h)

FsRtlOplockGetAnyBreakOwnerProcess возвращает владельца якобы взломанной оппортунистической блокировки (oplock).

Синтаксис

PEPROCESS FsRtlOplockGetAnyBreakOwnerProcess(
  POPLOCK Oplock
);

Параметры

Oplock

Указатель на непрозрачную структуру блокировки для файла. Этот указатель должен быть инициализирован предыдущим вызовом FsRtlInitializeOplock.

Возвращаемое значение

Этот метод возвращает значение NULL , если не удается найти владельца; В противном случае возвращается указатель на объект процесса владельца (PEPROCESS).

Комментарии

FsRtlOplockGetAnyBreakOwnerProcess выбирает владельца для предполагаемого нарушения блокировки следующим образом:

  • Если у oplock есть эксклюзивный владелец, FsRtlOplockGetAnyBreakOwnerProcess возвращает указатель на EPROCESS монопольного владельца.

  • Если oplock не имеет монопольного владельца и очередь останова не пуста, FsRtlOplockGetAnyBreakOwnerProcess произвольно возвращает указатель на первый EPROCESS в очереди.

  • В противном случае FsRtlOplockGetAnyBreakOwnerProcess возвращает значение NULL.

Если FsRtlOplockGetAnyBreakOwnerProcess возвращает значение, отличное от NULL, вызывающий объект отвечает за вызов ObDeferenceObject для освобождения ссылки, полученной от его имени.

FsRtlOplockGetAnyBreakOwnerProcess не пытается убедиться, что разрыв действительно находится в состоянии ожидания или что процесс, который он возвращает, действительно является владельцем.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 2004
Верхняя часть ntifs.h

См. также раздел

FsRtlInitializeOplock

ObDeferenceObject