다음을 통해 공유


KeInsertDeviceQueue 함수(wdm.h)

KeInsertDeviceQueue 루틴은 지정된 디바이스 큐 개체에 대한 스핀 잠금을 획득하고 디바이스 큐가 사용 중 상태로 설정된 경우 지정된 항목을 큐에 대기합니다.

통사론

BOOLEAN KeInsertDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

매개 변수

[in, out] DeviceQueue

호출자가 스토리지를 제공하는 디바이스 큐 형식의 컨트롤 개체에 대한 포인터입니다.

[in, out] DeviceQueueEntry

삽입할 디바이스 큐 항목에 대한 포인터입니다.

반환 값

디바이스 큐가 비어 있으면 FALSE 반환되고 DeviceQueueEntry 디바이스 큐에 삽입되지 않습니다.

발언

디바이스 큐가 사용 중 상태로 설정된 경우 지정된 DeviceQueueEntry 디바이스 큐의 꼬리에 삽입되고 디바이스 큐 스핀 잠금이 해제됩니다.

KeInsertDeviceQueue false 반환하면 항목이 큐에 대기되지 않으며 호출자가 IRP 처리를 시작해야 합니다. 큐가 비어 있는 경우 KeInsertDeviceQueue 또는 KeInsertByKeyDeviceQueue 호출하면 디바이스 큐가 사용 중이 아닌 상태에서 사용 중인 상태로 변경됩니다.

이 루틴은 디바이스 드라이버에 I/O 요청을 큐에 대기하는 코드에 대한 것입니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm)

참고 항목

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue