IoAllocateController 함수(ntddk.h)

IoAllocateController 루틴은 지정된 컨트롤러 개체가 나타내는 디바이스 컨트롤러가 지정된 디바이스 개체로 표시되는 대상 디바이스에 대한 I/O 작업을 수행하는 데 사용할 수 있는 즉시 드라이버 제공 ControllerControl 루틴에 대한 호출을 설정합니다.

구문

void IoAllocateController(
  [in]           PCONTROLLER_OBJECT ControllerObject,
  [in]           PDEVICE_OBJECT     DeviceObject,
  [in]           PDRIVER_CONTROL    ExecutionRoutine,
  [in, optional] PVOID              Context
);

매개 변수

[in] ControllerObject

드라이버에서 만든 컨트롤러 개체에 대한 포인터로, 일반적으로 연결된 디바이스에서 I/O 작업에 할당할 물리적 컨트롤러를 나타냅니다.

[in] DeviceObject

현재 IRP의 대상 디바이스를 나타내는 디바이스 개체에 대한 포인터입니다.

[in] ExecutionRoutine

드라이버 제공 ControllerControl 루틴에 대한 포인터입니다.

[in, optional] Context

드라이버가 호출될 때 드라이버의 ControllerControl 루틴에 전달되는 드라이버 결정 컨텍스트에 대한 포인터입니다.

반환 값

없음

설명

이 루틴은 지정된 디바이스에 대한 하드웨어 컨트롤러에 대한 단독 액세스를 예약합니다.

ControllerControl 루틴은 컨트롤러가 디바이스에 할당된 상태를 유지할지 여부를 나타내는 값을 반환합니다(DeallocateObject 또는 KeepObject). KeepObject를 반환하는 경우 드라이버는 이후에 IoFreeController를 호출하여 컨트롤러 개체를 해제해야 합니다.

요구 사항

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

추가 정보

ControllerControl

IoCreateController

IoDeleteController

IoFreeController