共用方式為


IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

IOCTL_USBPRINT_GET_1284_ID控制程式代碼允許上層軟體 (,例如語言監視器) ,要求並取得印表機的 IEEE 1284 裝置識別符字串。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

此作業中未使用;將此參數設定為 NULL

輸入緩衝區長度

此作業中未使用;將此參數設定為 0。

輸出緩衝區

輸出緩衝區將包含UCHAR資料。 成功時,此緩衝區可以保存下列專案:指定裝置 IEEE 1284 裝置識別元大小,以位元組為單位的雙位元組前置詞;裝置標識碼;和 Null 終止符。 IEEE 1284 裝置標識碼的大小最多可達 64 KB。 失敗時,如果 GetLastError 傳回錯誤碼 STATUS_BUFFER_TOO_SMALL,輸出緩衝區就不夠大,無法保存其用途的數據。

輸出緩衝區長度

輸出緩衝區必須夠大,才能包含保留裝置 IEEE 1284 裝置標識符長度的雙位元節數量、裝置標識碼 (大小上限為 64 KB) ,以及終止的 Null。

IOCTL_USBPRINT_GET_1284_ID輸出緩衝區長度會直接放在USB封包中。 在某些USB列印裝置上,使用最多65535個字節可能會導致呼叫失敗,錯誤23。 將緩衝區減少為 4094 個字節或更少,以解決此問題。

狀態區塊

Irp->如果要求成功,IoStatus.Status 會設定為 STATUS_SUCCESS 。 否則, 狀態 為適當的錯誤狀況為 NTSTATUS 程式碼。

規格需求

需求
標頭 usbprint.h

另請參閱

在驅動程式中建立IOCTL要求

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously