Compartir a través de


descripciones de DEVICE_DSM_ACTION

En esta página se describen las constantes de DEVICE_DSM_ACTION que se pueden usar para realizar una acción de administración de conjuntos de datos (DSM) en el conjunto de datos de un dispositivo. Estas constantes se definen en ntddstor.h. Las acciones identificadas como no destructivas no modificarán ningún dato. Consulte Información general sobre la administración de conjuntos de datos para obtener información sobre cómo se procesa una acción dsm.

DEVICE_DSM_ACTION constante Descripción
DeviceDsmAction_None Solo con fines de inicialización de estructura.
DeviceDsmAction_Trim El controlador realizará una operación de recorte.
DeviceDsmAction_Notification NonDestructive. El controlador realizará una operación de notificación. Para esta acción, el bloque de parámetros inmediatamente después de la estructura de DEVICE_DSM_INPUT tiene el formato de estructura DEVICE_DSM_NOTIFICATION_PARAMETERS . Compatible con Windows 7 y versiones posteriores.
DeviceDsmAction_OffloadRead NonDestructive. El controlador realiza una operación de lectura de descarga. Para esta acción, el bloque de parámetros inmediatamente después de la estructura DEVICE_DSM_INPUT tiene el formato de estructura DEVICE_DSM_OFFLOAD_READ_PARAMETERS . La salida consta de una estructura de DEVICE_DSM_OUTPUT , seguida de una estructura de STORAGE_OFFLOAD_READ_OUTPUT . Compatible con Windows 8 y versiones posteriores.
DeviceDsmAction_OffloadWrite El controlador realizará una operación de escritura de descarga. Para esta acción, el bloque de parámetros inmediatamente después de la estructura DEVICE_DSM_INPUT tiene el formato de estructura DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS . La salida consta de una estructura de DEVICE_DSM_OUTPUT , seguida de una estructura de STORAGE_OFFLOAD_WRITE_OUTPUT . Compatible con Windows 8 y versiones posteriores.
DeviceDsmAction_Allocation NonDestructive. El controlador realizará una operación de aprovisionamiento de bloques lógicos. El intervalo de bloques lógico se especifica en una única estructura de DEVICE_DSM_RANGE . Compatible con Windows 8 y versiones posteriores.
DeviceDsmAction_Repair NonDestructive. Solo para uso interno.
DeviceDsmAction_Scrub NonDestructive. Solo para uso interno.
DeviceDsmAction_DrtQuery NonDestructive. Solo para uso interno.
DeviceDsmAction_DrtClear NonDestructive. Solo para uso interno.
DeviceDsmAction_DrtDisable NonDestructive. Solo para uso interno.
DeviceDsmAction_TieringQuery NonDestructive. Solo para uso interno.
DeviceDsmAction_Map NonDestructive. Solo para uso interno.
DeviceDsmAction_RegenerateParity NonDestructive. Solo para uso interno.
DeviceDsmAction_NvCache_Change_Priority NonDestructive. El controlador cambiará la prioridad de almacenamiento en caché de los intervalos especificados de bloques lógicos. La nueva prioridad de destino se establece en una estructura de DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS que se encuentra en el bloque de parámetros inmediatamente después de la estructura DEVICE_DSM_INPUT . Los intervalos de bloques lógicos para los que se va a cambiar la prioridad se proporcionan en una o varias estructuras de DEVICE_DSM_RANGE . Se admite en Windows 8.1 y versiones posteriores.
DeviceDsmAction_NvCache_Evict NonDestructive. El controlador expulsará los datos del medio de almacenamiento en caché. Para expulsar todos los datos, establezca la marca DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE en el miembro Flags de DEVICE_DSM_INPUT y no incluya ninguna estructura de DEVICE_DSM_RANGE . Los intervalos de bloques lógicos específicos que se van a expulsar se proporcionan en una o varias estructuras de DEVICE_DSM_RANGE . La acción DeviceDsmAction_NvCache_Evict se ejecuta de forma sincrónica. No se atenderá ninguna otra acción hasta que la acción de desalojar se haya realizado correctamente o se haya producido un error. Para limitar su impacto en las aplicaciones que usan el dispositivo, cada acción de DeviceDsmAction_NvCache_Evict emitida debe incluir intervalos de datos relativamente pequeños. No deben superar los 10 MB y, idealmente, ser más pequeños que 2 MB. Esto minimizará la posibilidad de que las aplicaciones de nivel de usuario experimenten retrasos notables al acceder a los datos del dispositivo. Se admite en Windows 8.1 y versiones posteriores.
DeviceDsmAction_TopologyIdQuery NonDestructive. Solo para uso interno.
DeviceDsmAction_GetPhysicalAddresses NonDestructive. El controlador devolverá los intervalos de direcciones físicos que corresponden a uno o varios intervalos de bloques lógicos. Esta acción solo se admite en discos de memoria persistentes. Los intervalos de bloques lógicos se especifican como una serie de estructuras de DEVICE_DSM_RANGE inmediatamente después de la estructura de DEVICE_DSM_INPUT. La salida consta de una estructura de DEVICE_DSM_OUTPUT , seguida de relleno y, a continuación, una estructura de DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT con los intervalos de direcciones físicos solicitados en el bloque de salida. Cada intervalo de direcciones físico se devuelve en una estructura de DEVICE_STORAGE_ADDRESS_RANGE . Si el búfer de salida no es lo suficientemente grande como para contener todos los datos, dsm devuelve STATUS_BUFFER_OVERFLOW y el campo TotalNumberOfRanges de la estructura DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT contiene el número de elementos DEVICE_STORAGE_ADDRESS_RANGE necesarios para satisfacer la solicitud. Los intervalos de direcciones físicos que contengan un error de memoria tendrán DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR como dirección. Las aplicaciones pueden asignar los intervalos de direcciones físicas devueltos a los intervalos de bloques lógicos de entrada realizando un seguimiento de la longitud de cada intervalo de direcciones físicas devuelto. Tenga en cuenta que un único intervalo de bloques lógicos puede corresponder a muchos intervalos de direcciones físicos. Si DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES se establece en el campo Marcas de la estructura DEVICE_DSM_INPUT , el controlador no calculará TotalNumberOfRanges. Se trata de una optimización de rendimiento para los autores de llamadas que no necesitan conocer el número total de intervalos.
DeviceDsmAction_ScopeRegen NonDestructive. Solo para uso interno.
DeviceDsmAction_ReportZones NonDestructive. Solo para uso interno.
DeviceDsmAction_OpenZone NonDestructive. Solo para uso interno.
DeviceDsmAction_FinishZone NonDestructive. Solo para uso interno.
DeviceDsmAction_CloseZone NonDestructive. Solo para uso interno.
DeviceDsmAction_ResetWritePointer Solo para uso interno.
DeviceDsmAction_GetRangeErrorInfo NonDestructive. El controlador devolverá información sobre si uno o varios intervalos de bloques lógicos contienen errores multimedia. Esto solo se admite en discos de memoria persistentes. Los intervalos de bloques lógicos se especifican como una serie de estructuras de DEVICE_DSM_RANGE inmediatamente después de la estructura de DEVICE_DSM_INPUT . La salida consta de una estructura de DEVICE_DSM_OUTPUT , seguida de relleno y por una estructura DEVICE_DSM_RANGE_ERROR_OUTPUT) que contiene una matriz de DEVICE_STORAGE_RANGE_ATTRIBUTES. Si el búfer de salida no es lo suficientemente grande como para contener todos los datos, el DSM devuelve STATUS_BUFFER_OVERFLOW y el campo TotalNumberOfRanges de la estructura DEVICE_DSM_RANGE_ERROR_OUTPUT contiene el número de elementos de DEVICE_STORAGE_RANGE_ATTRIBUTES necesarios para satisfacer la solicitud. Cada estructura de DEVICE_STORAGE_RANGE_ATTRIBUTES contiene un campo IsRangeBad . El controlador establece ese campo en 1 cuando el intervalo de bloques lógicos contiene un error multimedia. Si no hay errores multimedia en ninguno de los intervalos solicitados, el controlador establece DEVICE_STORAGE_NO_ERRORS en el campo Marcas de DEVICE_DSM_RANGE_ERROR_OUTPUT. Los elementos de la matriz DEVICE_STORAGE_RANGE_ATTRIBUTES se ordenan para que su orden corresponda al orden de los intervalos de entrada. Por ejemplo, si el primer intervalo de entrada se dividió en 3 intervalos de salida, estos serán los tres primeros intervalos de la matriz. El autor de la llamada puede aprender qué intervalos de salida corresponden a un intervalo de entrada realizando un seguimiento de la longitud de los intervalos de salida.
DeviceDsmAction_WriteZeroes Solo para uso interno.
DeviceDsmAction_LostQuery NonDestructive. Solo para uso interno.
DeviceDsmAction_GetFreeSpace NonDestructive. Solo para uso interno.
DeviceDsmAction_ConversionQuery NonDestructive. Sólo para uso interno.