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 idioma) 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 era 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 um nulo de terminação.

O tamanho 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 resolve esse problema.

Bloco de status

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

Requisitos

Requisito Valor
Cabeçalho usbprint.h

Confira também

Criando solicitações IOCTL em drivers

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously