次の方法で共有


IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

IOCTL_USBPRINT_GET_1284_ID 制御コードを使用すると、上位層ソフトウェア (言語モニターなど) がプリンターの IEEE 1284 デバイス ID 文字列を要求して取得できます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

この操作では使用されません。このパラメーターを NULL 設定します。

入力バッファーの長さ

この操作では使用されません。このパラメーターを 0 に設定します。

出力バッファー

出力バッファーには UCHAR データが含まれます。 成功すると、このバッファーは、デバイスの IEEE 1284 デバイス ID のサイズをバイト単位で指定する 2 バイトのプレフィックスを保持できます。デバイス ID。および null ターミネータ。 IEEE 1284 デバイス ID のサイズは最大 64 KB です。 エラーが発生した場合、GetLastError がエラー コード STATUS_BUFFER_TOO_SMALLを返した場合、出力バッファーは目的のデータを保持するのに十分な大きさではありません。

出力バッファーの長さ

出力バッファーは、デバイスの IEEE 1284 デバイス ID の長さ、デバイス ID (最大 64 KB のサイズ)、終端の null を保持する 2 バイトの量を格納するのに十分な大きさである必要があります。

IOCTL_USBPRINT_GET_1284_ID出力バッファーの長さは、USB パケットに直接配置されます。 一部の USB プリント デバイスでは、最大 65535 バイトを使用すると、エラー 23 で呼び出しが失敗する可能性があります。 この問題を解決するには、バッファーを 4094 バイト以下に減らします。

状態ブロック

Irp->IoStatus.Status は、要求が成功した場合に STATUS_SUCCESS に設定されます。 それ以外の場合は、状態 NTSTATUS コードとして適切なエラー状態に します。

必要条件

要件 価値
ヘッダー usbprint.h

関連項目

ドライバー での IOCTL 要求の作成の

WdfIoTargetSendInternalIoctlOthersSynchronously する

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously する