IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES IOCTL (ntddstor.h)
Essa solicitação IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES é usada para enviar uma solicitação de gerenciamento de conjunto de dados para um dispositivo de armazenamento.
Código principal
Buffer de entrada
O buffer em Irp-AssociatedIrp.SystemBuffer> contém uma estrutura DEVICE_DSM_INPUT. Dependendo do membro Action dessa estrutura, o buffer de entrada também pode incluir um bloco de parâmetros e um bloco de intervalos de conjunto de dados. Consulte descrições de DEVICE_DSM_ACTION para obter descrições de todas as ações possíveis.
Comprimento do buffer de entrada
Parameters.DeviceIoControl.InputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, do buffer, que deve ser pelo menos sizeof(DEVICE_DSM_INPUT).
Buffer de saída
Dependendo do valor definido no membro Action de DEVICE_DSM_INPUT, a solicitação pode retornar dados no buffer em Irp-AssociatedIrp.SystemBuffer>. O buffer do sistema conterá dados válidos DEVICE_DSM_OUTPUT se a operação DSM retornar a saída e Parameters.DeviceIoControl.OutputBufferLength> 0. Dependendo da Ação, o buffer de saída também pode incluir um bloco de saída.
Comprimento do buffer de saída
O comprimento em bytes do buffer de saída, se houver. Se a saída for retornada, o buffer de saída deverá ser pelo menos sizeof(DEVICE_DSM_OUTPUT).
Bloco de status
O campo Status pode ser definido como STATUS_SUCCESS ou possivelmente para STATUS_INVALID_DEVICE_REQUEST, STATUS_BUFFER_TOO_SMALL, STATUS_BUFFER_OVERFLOW ou algum outro erro status.
Comentários
Devido aos requisitos do pool de memória pela pilha do driver de armazenamento, a conclusão do IRP que contém esse IOCTL deve estar em IRQL < DISPATCH_LEVEL.
Confira Visão geral do gerenciamento de conjunto de dados para obter mais informações.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddstor.h (inclua Ntddstor.h) |
IRQL | DISPATCH_LEVEL IRQL < (consulte a seção Comentários.) |
Confira também
Visão geral do gerenciamento do conjunto de dados