ChangerReinitializeUnit 函式 (mcd.h)
ChangerReinitializeUnit 會使用 IOCTL 程式代碼 IOCTL_CHANGER_REINITIALIZE_TRANSPORT來處理裝置控制項 IRP 的裝置特定層面。
語法
NTSTATUS ChangerReinitializeUnit(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
參數
[in] DeviceObject
代表變更器的裝置物件的指標。
[in] Irp
IRP 的指標。
傳回值
如果變更程序支援重新建構傳輸元素, ChangerReinitializeUnit 會傳回系統埠驅動程式所傳回的 STATUS_XXX 值,或下列其中一個值:
STATUS_SUCCESS
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
如果變更程式不支援重新建構傳輸元素,ChangerReinitializeUnit 會傳回STATUS_INVALID_DEVICE_REQUEST。
備註
此例程是必要的。
ChangerReinitializeUnit 會導致變更器重新建構其傳輸元素。 視變更器而定,這可能會將傳輸傳回「住家」位置。 changer 類別驅動程式通常會在變更器開啟電源或呼叫端應用程式起始復原作業之後呼叫 ChangerReinitializeUnit 。 GET_CHANGER_PARAMETERSFeatures0 中的CHANGER_DEVICE_REINITIALIZE_CAPABLE旗標會指出變更器的傳輸是否支援在這些情況下重新編譯。
changer 類別驅動程式會在呼叫 ChangerReinitializeUnit 之前,先檢查 I/O 堆棧位置中的輸入緩衝區長度。 Irp-SystemBuffer> 指向CHANGER_ELEMENT結構,表示要重新建構的專案。
ChangerReinitializeUnit 會建置具有CDB的SRB,以放置傳輸元素,並將其傳送至系統埠驅動程式。
ChangerReinitializeUnit 會將 I/O 狀態區塊中的 Information 字段設定為 sizeof (CHANGER_ELEMENT) ,然後再返回變更程式類別驅動程式。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | mcd.h (包括 Mcd.h、Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |