IoAllocateController 函式 (ntddk.h)
IoAllocateController 例程會設定呼叫驅動程式提供的 ControllerControl 例程,只要由指定的控制器物件代表的裝置控制器,即可執行目標裝置的 I/O 作業,由指定的裝置物件表示。
語法
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 合規性規則 | HwStorPortProhibitedDIS(storport),IrqlDispatch(storport),IrqlDispatch(storport),IrqlDispatch(wdm),SpNoWait(storport),StorPortStartIo(storport) |