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 SRB_IO_CONTROL seguida por uma estrutura NVCACHE_REQUEST_BLOCK . Dados adicionais específicos da função podem, opcionalmente, seguir a estrutura 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 do 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 IoBuildDeviceIoControlRequest , que usa IOCTL_SCSI_MINIPORT.
Código principal
Buffer de entrada
O buffer em Irp-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 SRB_IO_CONTROL . Qualquer buffer de dados opcional específico da função segue imediatamente a estrutura 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_BLOCK e buffer de dados específico da 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, bem como o buffer de dados opcional específico da função, são retornadas para o buffer em Irp-AssociatedIrp.SystemBuffer>.
Comprimento do buffer de saída
A duração do buffer.
Bloco de status
O campo Informações 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 (inclua Ntddscsi.h) |