Compartilhar via


IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)

As operações de Gerenciamento de Cache NV definidas aqui podem ser invocadas pelo código do aplicativo no modo de usuário em execução com privilégios de administrador, usando DeviceIoControl e o código de controle IOCTL_SCSI_MINIPORT. Ou o chamador pode ser o código do driver no modo kernel usando IoBuildDeviceIoControlRequest e o código de controle IOCTL_SCSI_MINIPORT.

A solicitação de função de Gerenciamento de Cache NV é especificada em um campo na estrutura NVCACHE_REQUEST_BLOCK. A entrada para IOCTL_SCSI_MINIPORT é uma estrutura de dados definida pelo usuário que contém uma estrutura de SRB_IO_CONTROL seguida por uma estrutura NVCACHE_REQUEST_BLOCK. Dados adicionais específicos da função podem, opcionalmente, seguir a estrutura de NVCACHE_REQUEST_BLOCK.

A interface usada para a funcionalidade de Gerenciamento de Cache NV consiste em duas camadas. A primeira camada é a interface entre um chamador e o driver de porta, que é definida por IOCTL_SCSI_MINIPORT. A segunda camada é a interface entre o chamador e o dispositivo, que é definida pela especificação ATA8-ACS e IOCTL_SCSI_MINIPORT_NVCACHE. A API para o código do aplicativo no modo de usuário é a interface DeviceIoControl. A API para código de driver no modo kernel é a interface deIoBuildDeviceIoControlRequest, que usa IOCTL_SCSI_MINIPORT.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

O buffer em >AssociatedIrp.SystemBuffer contém uma estrutura SRB_IO_CONTROL com o campo Assinatura definido como "HYBRDISK" e o campo ControlCode definido como IOCTL_SCSI_MINIPORT_NVCACHE. A estrutura NVCACHE_REQUEST_BLOCK segue imediatamente a estrutura de SRB_IO_CONTROL. Qualquer buffer de dados específico de função opcional imediatamente segue a estrutura de NVCACHE_REQUEST_BLOCK.

Comprimento do buffer de entrada

Parameters.DeviceIoControl.InputBufferLength indica o tamanho, em bytes, de todos os dados de entrada: SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCKe buffer de dados específico de função combinados. A presença ou ausência de um buffer de dados é indicada pelo campo NVCACHE_REQUEST_BLOCK****DataBufSize.

Buffer de saída

As estruturas SRB_IO_CONTROLSRB_IO_CONTROL**]() e NVCACHE_REQUEST_BLOCK atualizadas, bem como o buffer de dados específico de função opcional, são retornadas para o buffer em >AssociatedIrp.SystemBuffer.

Comprimento do buffer de saída

O comprimento do buffer.

Bloco de status

O campo informações de contém o número de bytes retornados no buffer de saída. O campo status indica os resultados da operação.

Requisitos

Requisito Valor
cabeçalho ntddscsi.h (include Ntddscsi.h)

Consulte também

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL