Compartilhar via


IOCTL_USBPRINT_GET_1284_ID IOCTL (usbprint.h)

O código de controle IOCTL_USBPRINT_GET_1284_ID permite que o software de camada superior (como um monitor de linguagem) solicite e obtenha a cadeia de caracteres de ID do dispositivo IEEE 1284 da impressora.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

Não usado nesta operação; defina esse parâmetro como NULL.

Comprimento do buffer de entrada

Não usado nesta operação; defina esse parâmetro como 0.

Buffer de saída

O buffer de saída conterá dados UCHAR. Com êxito, esse buffer pode conter o seguinte: um prefixo de dois bytes que especifica o tamanho, em bytes, da ID do dispositivo IEEE 1284 do dispositivo; a ID do dispositivo; e um terminador nulo. Uma ID de dispositivo IEEE 1284 pode ter até 64 KB de tamanho. Em caso de falha, se GetLastError retornar o código de erro STATUS_BUFFER_TOO_SMALL, o buffer de saída não será grande o suficiente para manter os dados destinados a ele.

Comprimento do buffer de saída

O buffer de saída deve ser grande o suficiente para conter uma quantidade de dois bytes que contém o comprimento da ID do dispositivo IEEE 1284 do dispositivo, a ID do dispositivo (até 64 KB de tamanho) e uma terminação nula.

O comprimento do buffer de saída IOCTL_USBPRINT_GET_1284_ID é colocado diretamente no pacote USB. Em alguns dispositivos de impressão USB, usar o máximo de 65535 bytes pode fazer com que a chamada falhe com o erro 23. Reduza o buffer para 4.094 bytes ou menos para resolver esse problema.

Bloco de status

Irp->IoStatus.Status será definido como STATUS_SUCCESS se a solicitação for bem-sucedida. Caso contrário, status à condição de erro apropriada como um código de NTSTATUS.

Requisitos

Requisito Valor
cabeçalho usbprint.h

Consulte também

criar solicitações IOCTL em drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously