IRP_MJ_DEVICE_CONTROL

如果類型有一組系統定義的 i/o 控制碼 (IOCTLs) ,則每個裝置物件都屬於特定裝置類型的驅動程式 (請參閱 指定裝置類型) 在 DispatchDeviceControl 常式中支援這項要求。 如需 IOCTLs 的詳細資訊,請參閱 I/o 控制程式代碼簡介

較高層級的驅動程式通常會將這些要求傳遞至基礎設備磁碟機。 驅動程式堆疊中的每個設備磁碟機都假設為支援此要求,以及一組裝置類型特定、公用或私用 IOCTLs。 如需有關 IOCTLs 特定裝置類型的詳細資訊,請參閱 Microsoft Windows 驅動程式套件 (WDK) 中的裝置類型特定檔。

傳送時

在成功完成建立要求之後的任何時間。

輸入參數

I/o 控制程式代碼包含在 IRP 的驅動程式 i/o 堆疊位置中的DeviceIoControl. IoControlCode。

其他輸入參數則取決於 i/o 控制程式代碼的值。 如需詳細資訊,請參閱 I/o 控制程式代碼的緩衝區描述

輸出參數

輸出參數取決於 i/o 控制程式代碼的值。 如需詳細資訊,請參閱 I/o 控制程式代碼的緩衝區描述

作業

驅動程式會收到此 i/o 控制項程式碼,因為使用者模式執行緒已呼叫 Microsoft Win32 DeviceIoControl 函式,或較高層級的核心模式驅動程式已設定要求。 使用者模式驅動程式可能會呼叫 DeviceIoControl,並傳入驅動程式定義的 (也稱為 用) i/o 控制程式代碼,以從緊密結合的核心模式設備磁碟機要求裝置或驅動程式特定的支援。

收到裝置 i/o 控制要求時,較高層級的驅動程式通常會將 IRP 傳遞給下一個較低的驅動程式。 不過,這種作法有一些例外狀況。 例如,具有從基礎埠驅動程式取得之預存設定資訊的類別驅動程式,可能會完成某些 IOCTL_XXX 要求,而不會將 IRP 傳遞給對應的埠驅動程式。

收到裝置 i/o 控制要求時,設備磁碟機會檢查 i/o 控制程式代碼,以判斷如何滿足要求。 針對大部分的公用 i/o 控制程式代碼,設備磁碟機會在 > AssociatedIrp SystemBuffer的緩衝區之間傳輸少量的資料。

如需 IRP_MJ_DEVICE_CONTROLIRP_MJ_INTERNAL_DEVICE_CONTROL 要求的 i/o 控制程式代碼的一般資訊,請參閱 使用 i/o 控制程式代碼。 另請參閱 裝置 Type-Specific I/o 要求

規格需求

標頭

Wdm (包括 Wdm、Ntddk .h 或 Ntifs. h)

另請參閱

DispatchDeviceControl