Encabezado ntddscsi.h
El almacenamiento usa este encabezado. Para más información, consulte:
ntddscsi.h contiene las siguientes interfaces de programación:
IOCTL
IOCTL_ATA_PASS_THROUGH Permite que una aplicación envíe casi cualquier comando de ATA a un dispositivo de destino, con las siguientes restricciones: _If existe un controlador de clase para el tipo de dispositivo de destino, la aplicación debe enviar la solicitud al controlador de clase. |
IOCTL_ATA_PASS_THROUGH_DIRECT Obtenga información sobre cómo IOCTL_ATA_PASS_THROUGH_DIRECT permite que una aplicación envíe casi cualquier comando de ATA a un dispositivo de destino. |
IOCTL_MINIPORT_PROCESS_SERVICE_IRP Esta IOCTL la usa una aplicación en modo de usuario o un controlador en modo kernel que requiere notificación cuando ocurre algo de interés en la minipuerto virtual. |
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO es la firma definida por el sistema que se usa junto con el código de control IOCTL_SCSI_MINIPORT para solicitar que un miniporte devuelva datos de resistencia para un dispositivo de destino. |
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL es la firma utilizada junto con el código de control de IOCTL_SCSI_MINIPORT para enviar datos específicos del protocolo a un miniport. |
IOCTL_MPIO_PASS_THROUGH_PATH Este código de control de E/S permite a una aplicación o controlador de kernel enviar un comando SCSI a un LUN real designado. |
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT Obtenga información sobre cómo este código de control de E/S permite a una aplicación o controlador de kernel enviar un comando SCSI a un LUN real designado. |
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX La solicitud de código de control IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX es la versión extendida de la solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes. |
IOCTL_MPIO_PASS_THROUGH_PATH_EX La solicitud de código de control IOCTL_MPIO_PASS_THROUGH_PATH_EX es la versión extendida de la solicitud de IOCTL_MPIO_PASS_THROUGH_PATH. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes. |
IOCTL_SCSI_GET_ADDRESS Devuelve la información de dirección, como el identificador de destino (TID) y el número de unidad lógica (LUN) de un destino SCSI determinado. |
IOCTL_SCSI_GET_CAPABILITIES Devuelve las funcionalidades y limitaciones del HBA SCSI subyacente. |
IOCTL_SCSI_GET_INQUIRY_DATA Devuelve los datos de consulta SCSI para todos los dispositivos de un adaptador de bus de host SCSI determinado (HBA). |
IOCTL_SCSI_MINIPORT Envía una función de control especial a un controlador de minipuerto específico de HBA. |
IOCTL_SCSI_MINIPORT_DIAGNOSTIC El código de control IOCTL_SCSI_MINIPORT_DIAGNOSTIC se usa para realizar una solicitud de diagnóstico al Miniport. |
IOCTL_SCSI_MINIPORT_HYBRID El código de control IOCTL_SCSI_MINIPORT_HYBRID envía una solicitud de control de disco híbrido a un controlador de miniport específico de HBA. |
IOCTL_SCSI_MINIPORT_NVCACHE Las operaciones de administración de caché de NV definidas aquí se pueden invocar mediante el código de aplicación en modo de usuario que se ejecuta con privilegios de administrador, mediante DeviceIoControl y el código de control IOCTL_SCSI_MINIPORT. |
IOCTL_SCSI_PASS_THROUGH Permite que una aplicación envíe casi cualquier comando SCSI a un dispositivo de destino, con las siguientes restricciones:No se permiten comandos Multitarget, como COPY. No se admiten las operaciones de transferencia de datos bidireccionales. Si existe un controlador de clase para el tipo de dispositivo de destino, la solicitud debe enviarse a ese controlador de clase. Por lo tanto, una aplicación puede enviar esta solicitud directamente al controlador de puerto del sistema para una unidad lógica de destino (LU) solo si no hay ningún controlador de clase para el tipo de dispositivo que está conectado a esa LU. El controlador de puerto del sistema no comprueba si un dispositivo ha sido reclamado por un controlador de clase antes de procesar una solicitud de paso a través. Por lo tanto, si una aplicación omite un controlador de clase que ha reclamado un dispositivo y envía una solicitud de paso a través para ese dispositivo directamente al controlador de puerto, puede producirse un conflicto para el control del dispositivo entre el controlador de clase y la aplicación. Si se envía una solicitud de paso a través a un objeto de dispositivo de adaptador y si se origina en el modo de usuario y tiene como destino una LU reclamada por un controlador de clase, Storport produce un error en la solicitud con STATUS_INVALID_DEVICE_REQUEST. Si la solicitud se envía a un objeto de dispositivo LU, se origina en modo kernel o tiene como destino una LU no reclamada, se pasa al controlador de miniporte. Esta solicitud no se puede usar si el CDB podría requerir que el controlador de miniport subyacente acceda directamente a la memoria. Si el CDB del autor de la llamada podría requerir acceso directo a la memoria, use IOCTL_SCSI_PASS_THROUGH_DIRECT en su lugar. Las aplicaciones no deben intentar enviar una solicitud de paso a través de forma asincrónica. Todas las solicitudes de paso a través deben ser sincrónicas. Las aplicaciones no requieren privilegios administrativos para enviar una solicitud de paso a través a un dispositivo, pero deben tener acceso de lectura y escritura al dispositivo. La aplicación que realiza la llamada crea el bloque de descriptores de comandos SCSI, que puede incluir una solicitud de datos de detección de solicitudes si se produce una CONDICIÓN CHECK. IOCTL_SCSI_PASS_THROUGH es una solicitud de control de dispositivo almacenado en búfer. Para omitir el almacenamiento en búfer en la memoria del sistema, los autores de llamadas deben usar IOCTL_SCSI_PASS_THROUGH_DIRECT. Al controlar una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT, el sistema bloquea el búfer en la memoria del usuario y el dispositivo accede directamente a esta memoria. Esta solicitud se usa normalmente para transferir pequeñas cantidades de datos (<16 000). Las aplicaciones pueden enviar esta solicitud mediante una solicitud de IRP_MJ_DEVICE_CONTROL. Los controladores de clase de almacenamiento establecen el número irP secundario en IRP_MN_SCSI_CLASS para indicar que una controlador de clase de almacenamiento ha procesado la solicitud. |
IOCTL_SCSI_PASS_THROUGH_DIRECT Permite que una aplicación envíe casi cualquier comando SCSI a un dispositivo de destino, con las siguientes restricciones:No se permiten comandos Multitarget, como COPY. No se admiten las operaciones de transferencia de datos bidireccionales. Si existe un controlador de clase para el tipo de dispositivo de destino, la solicitud debe enviarse a ese controlador de clase. Por lo tanto, una aplicación puede enviar esta solicitud directamente al controlador de puerto del sistema para una unidad lógica de destino solo si no hay ningún controlador de clase para el tipo de dispositivo conectado a esa LU. Esta solicitud se debe realizar si la CDB de entrada podría requerir que el controlador de miniporte subyacente acceda directamente a la memoria. La aplicación que realiza la llamada crea el bloque de descriptores de comandos SCSI, que puede incluir una solicitud de datos de detección de solicitudes si se produce una CONDICIÓN CHECK. Si la CDB solicita una operación de transferencia de datos, el autor de la llamada debe configurar un búfer alineado del adaptador desde el que o en el que el controlador de miniporte puede transferir datos directamente. Esta solicitud se usa normalmente para transferir grandes cantidades de datos (>16 000). Las aplicaciones pueden enviar esta solicitud mediante una solicitud de IRP_MJ_DEVICE_CONTROL. Los controladores de clase de almacenamiento establecen el número irP secundario en IRP_MN_SCSI_CLASS para indicar que una controlador de clase de almacenamiento ha procesado la solicitud. |
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX La solicitud de código de control IOCTL_SCSI_PASS_THROUGH_DIRECT_EX es la versión extendida de la solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes. |
IOCTL_SCSI_PASS_THROUGH_EX La solicitud de código de control IOCTL_SCSI_PASS_THROUGH_EX es la versión extendida de la solicitud de IOCTL_SCSI_PASS_THROUGH. Esta solicitud proporciona compatibilidad con transferencias de datos bidireccionales y permite un bloque de datos de comandos (CDB) > de 16 bytes. |
IOCTL_SCSI_RESCAN_BUS Vuelve a examinar los LUN en el bus(es). |
Estructuras
ATA_PASS_THROUGH_DIRECT La estructura ATA_PASS_THROUGH_DIRECT se usa junto con una solicitud de IOCTL_ATA_PASS_THROUGH_DIRECT para indicar al controlador de puerto que envíe un comando ATA incrustado al dispositivo de destino. |
ATA_PASS_THROUGH_EX La estructura ATA_PASS_THROUGH_EX se usa junto con una solicitud de IOCTL_ATA_PASS_THROUGH para indicar al controlador de puerto que envíe un comando ATA incrustado al dispositivo de destino. |
HYBRID_INFORMATION La estructura de HYBRID_INFORMATION contiene información sobre la funcionalidad del disco híbrido. |
IO_SCSI_CAPABILITIES La estructura IO_SCSI_CAPABILITIES se usa junto con la solicitud IOCTL_SCSI_GET_CAPABILITIES para recuperar las funcionalidades y limitaciones del adaptador de host SCSI subyacente. Nota Los modelos de controlador de puerto SCSI y controlador de miniporte SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar el controlador Storport y los modelos de controlador de miniport storport. |
MPIO_PASS_THROUGH_PATH La estructura MPIO_PASS_THROUGH_PATH se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
MPIO_PASS_THROUGH_PATH_DIRECT La estructura MPIO_PASS_THROUGH_PATH_DIRECT se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
MPIO_PASS_THROUGH_PATH_DIRECT_EX La estructura MPIO_PASS_THROUGH_PATH_DIRECT_EX se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
MPIO_PASS_THROUGH_PATH_EX La estructura MPIO_PASS_THROUGH_PATH_EX se usa junto con una solicitud de IOCTL_MPIO_PASS_THROUGH_PATH_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
NTSCSI_UNICODE_STRING Los controladores de puerto de almacenamiento pueden usar la estructura NTSCSI_UNICODE_STRING para definir cadenas Unicode. |
NV_FEATURE_PARAMETER La estructura NV_FEATURE_PARAMETER se usa junto con la solicitud de IOCTL_SCSI_MINIPORT_NVCACHE para obtener información de compatibilidad de características de NV Cache Manager del dispositivo. |
NVCACHE_REQUEST_BLOCK La estructura NVCACHE_REQUEST_BLOCK se usa junto con la solicitud de IOCTL_SCSI_MINIPORT para administrar dispositivos de disco duro híbrido (H-HDD) (por ejemplo, la tecnología Microsoft ReadyDrive). |
SCSI_ADAPTER_BUS_INFO La estructura SCSI_ADAPTER_BUS_INFO se usa junto con la solicitud IOCTL_SCSI_GET_INQUIRY_DATA para recuperar los datos de consulta SCSI para todos los dispositivos de un bus SCSI determinado. |
SCSI_ADDRESS La estructura de SCSI_ADDRESS se usa junto con la solicitud de IOCTL_SCSI_GET_ADDRESS para recuperar la información de dirección, como el identificador de destino (TID) y el número de unidad lógica (LUN) de un destino SCSI determinado. |
SCSI_BUS_DATA La estructura SCSI_BUS_DATA se usa junto con la solicitud IOCTL_SCSI_GET_INQUIRY_DATA y la estructura de SCSI_ADAPTER_BUS_INFO para recuperar los datos de consulta SCSI para todos los dispositivos de un bus SCSI determinado. |
SCSI_INQUIRY_DATA La estructura SCSI_INQUIRY_DATA se usa junto con la solicitud de IOCTL_SCSI_GET_INQUIRY_DATA para recuperar los datos de consulta SCSI de todos los dispositivos en un bus SCSI determinado. |
SCSI_PASS_THROUGH La estructura SCSI_PASS_THROUGH se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
SCSI_PASS_THROUGH_DIRECT La estructura SCSI_PASS_THROUGH_DIRECT se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
SCSI_PASS_THROUGH_DIRECT_EX La estructura SCSI_PASS_THROUGH_DIRECT_EX se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_DIRECT_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
SCSI_PASS_THROUGH_EX La estructura SCSI_PASS_THROUGH_EX se usa junto con una solicitud de IOCTL_SCSI_PASS_THROUGH_EX para indicar al controlador de puerto que envíe un comando SCSI incrustado al dispositivo de destino. |
SRB_IO_CONTROL estructura de SRB_IO_CONTROL |
STORAGE_DIAGNOSTIC_MP_REQUEST Describe una solicitud de diagnóstico a Miniport. La estructura STORAGE_DIAGNOSTIC_MP_REQUEST se proporciona en el búfer de entrada y salida de una solicitud de IOCTL_SCSI_MINIPORT_DIAGNOSTIC. |
STORAGE_ENDURANCE_DATA_DESCRIPTOR Un minipuerto usa STORAGE_ENDURANCE_DATA_DESCRIPTOR para notificar la información de resistencia de un dispositivo al controlador del puerto de almacenamiento. |
STORAGE_ENDURANCE_INFO Un minipuerto usa la estructura STORAGE_ENDURANCE_INFO para notificar la información de resistencia de un dispositivo. |
Enumeraciones
MP_STORAGE_DIAGNOSTIC_LEVEL La enumeración MP_STORAGE_DIAGNOSTIC_LEVEL permite al autor de la llamada controlar qué tipos de datos debe devolver el proveedor. |
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE La enumeración MP_STORAGE_DIAGNOSTIC_TARGET_TYPE especifica el tipo de destino de un diagnóstico de almacenamiento. |