FsRtlOplockBreakToNoneEx 함수(ntifs.h)

FsRtlOplockBreakToNoneEx 루틴은 oplock 키와 관계없이 모든 기회 잠금(oplock)을 즉시 중단합니다.

구문

NTSTATUS FsRtlOplockBreakToNoneEx(
  [in, out]      POPLOCK                       Oplock,
  [in]           PIRP                          Irp,
  [in]           ULONG                         Flags,
  [in, optional] PVOID                         Context,
  [in, optional] POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine,
  [in, optional] POPLOCK_FS_PREPOST_IRP        PostIrpRoutine
);

매개 변수

[in, out] Oplock

파일에 대한 불투명 불투명 포인터입니다. 이 포인터는 FsRtlInitializeOplock에 대한 이전 호출에 의해 초기화되어야 합니다.

[in] Irp

I/O 작업에 대한 IRP에 대한 포인터입니다.

[in] Flags

연결된 파일 I/O 작업에 대한 비트 마스크입니다. 파일 시스템 또는 필터 드라이버는 FsRtlOplockBreakToNoneEx의 동작을 지정하는 비트를 설정합니다. Flags 매개 변수에는 다음과 같은 옵션이 있습니다.

OPLOCK_FLAG_COMPLETE_IF_OPLOCKED(0x00000001)

oplock 중단을 발생시킨 작업을 차단하거나 보류하지 않고 oplock 중단을 진행할 수 있도록 지정합니다. 일반적으로 이 플래그는 Irp 매개 변수가 가리키는 IRP가 IRP_MJ_CREATE 작업을 선언하는 경우에만 사용됩니다.

[in, optional] Context

CompletionRoutinePostIrpRoutine 매개 변수가 가리키는 콜백 루틴에 전달할 호출자 정의 컨텍스트 정보에 대한 포인터입니다.

[in, optional] CompletionRoutine

호출자가 제공한 콜백 루틴에 대한 포인터입니다. oplock 중단이 진행 중인 경우 중단이 완료되면 이 루틴이 호출됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다. NULL인 경우 호출자는 oplock 중단이 완료될 때까지 대기 상태로 전환됩니다.

이 루틴은 다음과 같이 선언됩니다.

typedef VOID
(*POPLOCK_WAIT_COMPLETE_ROUTINE) (
      IN PVOID Context,
      IN PIRP Irp
      );

이 루틴에는 다음과 같은 매개 변수가 있습니다.

Context

Context 매개 변수에서 FsRtlOplockBreakToNoneEx에 전달된 컨텍스트 정보 포인터입니다.

Irp

I/O 작업에 대한 IRP에 대한 포인터입니다.

[in, optional] PostIrpRoutine

I/O 작업이 보류될 경우 호출자가 제공한 콜백 루틴에 대한 포인터입니다. oplock 패키지가 IRP를 보류하기 전에 루틴이 호출됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

이 루틴은 다음과 같이 선언됩니다.

typedef VOID
(*POPLOCK_FS_PREPOST_IRP) (
      IN PVOID Context,
      IN PIRP Irp
      );

Context

Context 매개 변수에서 FsRtlOplockBreakToNoneEx에 전달된 컨텍스트 정보 포인터입니다.

Irp

I/O 작업에 대한 IRP에 대한 포인터입니다.

반환 값

FsRtlOplockBreakToNoneEx 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 코드를 반환합니다.

반환 코드 설명
STATUS_CANCELLED
IRP가 취소되었습니다. STATUS_CANCELLED 오류 코드입니다.
STATUS_PENDING
oplock 중단이 진행 중입니다. 따라서 IRP가 보류되었습니다. STATUS_PENDING 성공 코드입니다.
STATUS_OPLOCK_BREAK_IN_PROGRESS
기회 잠금 중단(oplock)이 진행 중입니다. STATUS_OPLOCK_BREAK_IN_PROGRESS 호출자가 Flags 매개 변수에 OPLOCK_FLAG_COMPLETE_IF_OPLOCKED 설정되고 oplock이 손상되어야 하는 경우 FsRtlOplockBreakToNoneEx가 반환하는 성공 코드입니다.

설명

기회 잠금에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

미니필터는 FsRtlOplockBreakToNoneEx 대신 FltOplockBreakToNoneEx를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 FsRtlOplockBreakToNoneEx 루틴은 Windows 7부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

FltOplockBreakToNoneEx

FsRtlInitializeOplock