다음을 통해 공유


IoStartNextPacketByKey 함수(ntifs.h)

IoStartNextPacketByKey 루틴은 지정된 정렬 키 값에 따라 지정된 디바이스 개체의 연결된 디바이스 큐에서 다음 I/O 요청 패킷을 큐에서 제거하고 해당 IRP를 사용하여 드라이버의 StartIo 루틴을 호출합니다.

구문

void IoStartNextPacketByKey(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] BOOLEAN        Cancelable,
  [in] ULONG          Key
);

매개 변수

[in] DeviceObject

IRP를 큐에서 해제할 디바이스 개체에 대한 포인터입니다.

[in] Cancelable

디바이스 큐의 IRP를 취소할 수 있는지 여부를 지정합니다.

[in] Key

큐에서 제거할 항목을 결정하는 정렬 키를 지정합니다.

반환 값

없음

설명

대상 디바이스 개체에 대한 디바이스 큐에 현재 IRP가 없는 경우 이 루틴은 단순히 호출자에게 컨트롤을 반환합니다.

드라이버가 IoStartPacket을 호출할 때 취소 루틴에 대한 포인터를 전달한 경우 이 루틴의 Cancelable 매개 변수에 TRUE를 전달해야 합니다. Cancelable이 TRUE이면 I/O 관리자는 취소 스핀 잠금을 사용하여 디바이스 큐와 현재 IRP를 보호합니다.

StartIo 루틴이 없는 드라이버는 IoStartNextPacketByKey를 호출할 수 없습니다.

IoStartNextPacketByKey의 호출자는 IRQL <= DISPATCH_LEVEL 실행 중이어야 합니다. 일반적으로 이 루틴은 디바이스 드라이버의 DpcForIsr 또는 CustomDpc 루틴에서 호출되며 둘 다 IRQL = DISPATCH_LEVEL 실행됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 유니버설
헤더 ntifs.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket