WdfIoQueueGetState 함수(wdfio.h)

[KMDF 및 UMDF에 적용]

WdfIoQueueGetState 메서드는 지정된 I/O 큐의 상태 반환합니다.

구문

WDF_IO_QUEUE_STATE WdfIoQueueGetState(
  [in]            WDFQUEUE Queue,
  [out, optional] PULONG   QueueRequests,
  [out, optional] PULONG   DriverRequests
);

매개 변수

[in] Queue

프레임워크 큐 개체에 대한 핸들입니다.

[out, optional] QueueRequests

현재 I/O 큐에 있고 드라이버에 배달되지 않은 I/O 요청 수를 수신하는 위치에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다.

[out, optional] DriverRequests

드라이버에 전달되었지만 드라이버가 완료되거나 취소되지 않은 I/O 요청 수를 수신하는 위치에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다.

반환 값

WdfIoQueueGetState여러 WDF_IO_QUEUE_STATE 열거자의 비트 OR을 포함할 수 있는 WDF_IO_QUEUE_STATE 형식화된 값을 반환합니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

WdfIoQueueGetState를 호출한 후 드라이버는 받은 상태 값을 Wdfio.h에 정의된 다음 함수에 전달할 수 있습니다.

  • 가 드레이닝되면 TRUE 를 반환하는 WDF_IO_QUEUE_DRAINED.

  • 가 유휴 상태이면 TRUE 를 반환하는 WDF_IO_QUEUE_IDLE.

  • 가 제거되면 TRUE 를 반환하는 WDF_IO_QUEUE_PURGED.

  • 가 준비되면 TRUE 를 반환하는 WDF_IO_QUEUE_READY.

  • 가 중지되면 TRUE 를 반환하는 WDF_IO_QUEUE_STOPPED.

드라이버가 프레임워크의 자동 동기화를 사용하는 경우 I/O 큐의 상태 WdfIoQueueGetState 메서드가 프레임워크에서 상태 정보를 가져오는 시간과 메서드가 반환하는 시간 사이에 변경되지 않습니다. 그렇지 않으면 WdfIoQueueGetState 메서드가 반환되기 전에 큐의 상태 변경될 수 있습니다.

WdfIoQueueGetState 메서드에 대한 자세한 내용은 I/O 큐 속성 가져오기를 참조하세요.

예제

다음 코드 예제는 지정된 I/O 큐가 유휴 상태이면 TRUE 를 반환하는 루틴입니다.

BOOLEAN
IsQueueIdle(
    IN WDFQUEUE Queue
    )
{
    WDF_IO_QUEUE_STATE queueStatus;
    queueStatus = WdfIoQueueGetState(
                                     Queue,
                                     NULL,
                                     NULL
                                     );
    return (WDF_IO_QUEUE_IDLE(queueStatus)) ? TRUE : FALSE;
}

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfio.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

EvtIoQueueState

WDF_IO_QUEUE_STATE