código de controle FSCTL_OFFLOAD_READ

O código de controle FSCTL_OFFLOAD_READ inicia uma leitura de descarregamento para um bloco de dados em um sistema de armazenamento que dá suporte ao descarregamento de primitivos de leitura.

Para executar essa operação, chame FltFsControlFile ou ZwFsControlFile com os parâmetros a seguir.

Parâmetros

  • Instância [in]: somente FltFsControlFile . Um ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.

  • FileObject [in]: somente FltFsControlFile . O objeto de ponteiro de arquivo que especifica o arquivo do qual ler. Esse parâmetro é necessário e não pode ser NULL.

  • FileHandle [in]: somente ZwFsControlFile . O identificador de arquivo do arquivo do qual ler. Esse parâmetro é necessário e não pode ser NULL.

  • FsControlCode [in]: o código de controle da operação. Use FSCTL_OFFLOAD_READ para esta operação.

  • InputBuffer [in]: um ponteiro para uma estrutura FSCTL_OFFLOAD_READ_INPUT , que contém o tamanho e o deslocamento de um bloco de dados a ser lido.

  • InputBufferLength [in]: o tamanho, em bytes, do buffer apontado por InputBuffer. Esse valor é sizeof(FSCTL_OFFLOAD_READ_INPUT).

  • OutputBuffer [out]: um ponteiro para uma estrutura FSCTL_OFFLOAD_READ_OUTPUT , que recebe os resultados da operação de leitura de descarregamento.

  • OutputBufferLength [out]: o tamanho, em bytes, do buffer apontado pelo parâmetro OutputBuffer . Esse valor deve ser pelo menos sizeof(FSCTL_OFFLOAD_READ_OUTPUT).

Bloco de status

FltFsControlFile ou ZwFsControlFile retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, a função apropriada pode retornar um dos seguintes valores NTSTATUS.

Código Significado
STATUS_INVALID_DEVICE_REQUEST O identificador especificado não é um identificador de arquivo válido
STATUS_INVALID_PARAMETER Um parâmetro é inválido. Consulte Observações.
STATUS_VOLUME_DISMOUNTED O volume do sistema de arquivos é desmontado.
STATUS_NOT_SUPPORTED Não há suporte para operações de leitura de descarregamento nesse volume.
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED Não há suporte para o tipo de arquivo solicitado. Não há suporte para operações de descarregamento nesses tipos de arquivo: um arquivo transacionado (TxF); Arquivos não usuários; Arquivos compactados; Arquivos criptografados; Arquivos esparsos; Arquivos NTFS Metatdata.
STATUS_FILE_DELETED O fluxo de dados desse arquivo é inválido.
STATUS_FILE_CLOSED O identificador de arquivo está fechado.
STATUS_INVALID_HANDLE O identificador de arquivo especificado é inválido.
STATUS_FILE_LOCK_CONFLICT Acesso de leitura insuficiente devido ao estado de bloqueio de arquivo atual.
STATUS_END_OF_FILE O membro FileOffset do FSCTL_OFFLOAD_READ_INPUT começa após o EOF (fim do arquivo).
STATUS_DISMOUNTED_VOLUME Uma leitura de descarregamento não pode ocorrer em um volume desmontado.
STATUS_INSUFFICIENT_RESOUCES Recursos insuficientes estão disponíveis para concluir a solicitação.
STATUS_BUFFER_TOO_SMALL OutputBufferLength é muito pequeno para OutputBuffer receber uma estrutura FSCTL_OFFLOAD_READ_OUTPUT .

Comentários

A leitura de descarregamento está disponível apenas para arquivos normais. Consulte a descrição de STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED para obter uma lista de tipos de arquivo sem suporte.

É possível que as leituras comecem além da VDL (Comprimento de Dados Válido), mas não além do EOF.

Quando STATUS_INVALID_PARAMETER é retornado, o erro pode ser um dos seguintes parâmetros inválidos:

  • O tamanho do arquivo é menor que PAGE_SIZE.
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT).
  • Um ou mais desses membros do FSCTL_OFFLOAD_READ_INPUT estão incorretos:
    • FileOffset não é um múltiplo do tamanho do setor lógico do volume.
    • CopyLength não é um múltiplo do tamanho do setor lógico do volume.
    • Tamanho não é o tamanho da estrutura FSCTL_OFFLOAD_READ_INPUT .
    • FileOffset + CopyLength>MAXULONGLONG.

Requisitos

Tipo de Requisito Requisito
Cliente mínimo com suporte Windows 8
parâmetro Ntifs.h (inclua Ntifs.h ou Fltkernel.h)

Confira também

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT