changerSetPosition 函式 (mcd.h)
ChangerSetPosition 會使用 IOCTL 程式代碼 IOCTL_CHANGER_SET_POSITION來處理裝置控制項 IRP 的裝置特定層面。
語法
NTSTATUS ChangerSetPosition(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp
);
參數
[in] DeviceObject
代表變更器的裝置物件的指標。
[in] Irp
IRP 的指標。
傳回值
如果變更程式支援設定傳輸專案的位置, ChangerSetPosition 會傳回系統埠驅動程式所傳回的狀態,或下列其中一個值:
STATUS_SUCCESS
STATUS_INFO_LENGTH_MISMATCH
STATUS_INVALID_PARAMETER
STATUS_INSUFFICIENT_RESOURCES
如果變更程式不支援設定傳輸專案的位置,ChangerSetPosition 會傳回STATUS_INVALID_DEVICE_REQUEST。
備註
此例程是必要的。
ChangerSetPosition 會將變更器的機器人傳輸機制設定為指定的目的地,通常藉由先定位傳輸來優化移動或交換媒體。
GET_CHANGER_PARAMETERSFeatures0 中的 CHANGER_POSITION_TO_ELEMENT 旗標會指出變更器是否支援這項功能。
變更器類別驅動程式會在呼叫 ChangerSetPosition 之前,先檢查 I/O 堆棧位置中的輸入緩衝區長度。 Irp-SystemBuffer> 指向CHANGER_SET_POSITION結構做為輸入參數,表示要設定的傳輸專案和目的地。
ChangerSetPosition 會先確認傳輸和目的地項目位址有效,並將以零起始的專案位址轉換為裝置特定的位址。 然後,它會使用CDB建置SRB來放置元素,並將它傳送至系統埠驅動程式。
ChangerSetPosition 會將 I/O 狀態區塊中的 [資訊 ] 欄位設定為 sizeof (CHANGER_SET_POSITION) ,然後再返回 changer 類別驅動程式。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | mcd.h (包括 Mcd.h、Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |