다음을 통해 공유


DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE 콜백 함수(wdm.h)

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE 콜백은 IoDriverProxyCreateHotSwappableWorkerThread에서 만든 핫 스왑 가능한 작업자 스레드에서 실행되는 루틴을 정의합니다.

Syntax

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE DriverProxyHotswapWorkerRoutine;

BOOLEAN DriverProxyHotswapWorkerRoutine(
  PVOID WorkerContext,
  NTSTATUS WaitStatus
)
{...}

매개 변수

WorkerContext

[in] 작업자 스레드를 만들 때 지정된 드라이버 정의 컨텍스트 정보에 대한 포인터입니다. 이 컨텍스트는 DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT 구조체의 컨텍스트 필드에서 전달됩니다.

WaitStatus

[in] 대기 작업에서 반환된 상태입니다. 작업자 스레드가 각성된 이유를 나타냅니다. 가능한 대기 상태 값은 KeWaitForMultipleObjects 를 참조하세요.

반환 값

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE 다음 값 중 하나를 반환합니다.

반환 값 Description
TRUE 작업자 스레드는 계속 실행되고 지정된 개체에서 다시 기다려야 합니다.
FALSE 작업자 스레드가 종료되어야 합니다.

비고

이 콜백은 작업자 스레드가 커널 개체를 기다리지 못하게 되면 호출됩니다. 루틴은 스레드가 계속 실행되어야 하는지 또는 종료해야 하는지를 결정합니다.

이 콜백 루틴은 핫 스왑 가능한 작업을 위해 특별히 만들어진 시스템 작업자 스레드의 컨텍스트에서 PASSIVE_LEVEL 실행됩니다. 스레드는 실행(IRQL_requires_same) 전체에서 동일한 IRQL을 유지 관리합니다.

작업자 루틴은 스레드가 DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT 구조에 지정된 커널 개체를 대기할 때마다 호출됩니다. WaitStatus 및 드라이버의 현재 상태에 따라 루틴은 처리를 계속할지(TRUE 반환) 작업자 스레드를 종료할지(FALSE 반환)를 결정해야 합니다.

작업자 스레드 인프라는 스레드를 안전하게 종료하고 드라이버 핫 스왑 작업의 일부로 다시 만들 수 있도록 하여 런타임 드라이버 업데이트 중에 시스템 안정성을 유지합니다.

요구 사항

요구 사항 가치
대상 플랫폼 보편적
Header wdm.h
IRQL PASSIVE_LEVEL

참고하십시오

IoDriverProxyCreateHotSwappableWorkerThread

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT