📄 ntddstor.inc
字号:
MO_5_LIMDOW equ 03Ch ; Opt_Disk - MO 5.25" Rewriteable (LIMDOW)
PC_5_WO equ 03Dh ; Opt_Disk - Phase Change 5.25" Write Once Optical
PC_5_RW equ 03Eh ; Opt_Disk - Phase Change 5.25" Rewriteable
PD_5_RW equ 03Fh ; Opt_Disk - PhaseChange Dual Rewriteable
ABL_5_WO equ 040h ; Opt_Disk - Ablative 5.25" Write Once Optical
PINNACLE_APEX_5_RW equ 041h ; Opt_Disk - Pinnacle Apex 4.6GB Rewriteable Optical
SONY_12_WO equ 042h ; Opt_Disk - Sony 12" Write Once
PHILIPS_12_WO equ 043h ; Opt_Disk - Philips/LMS 12" Write Once
HITACHI_12_WO equ 044h ; Opt_Disk - Hitachi 12" Write Once
CYGNET_12_WO equ 045h ; Opt_Disk - Cygnet/ATG 12" Write Once
KODAK_14_WO equ 046h ; Opt_Disk - Kodak 14" Write Once
MO_NFR_525 equ 047h ; Opt_Disk - Near Field Recording (Terastor)
NIKON_12_RW equ 048h ; Opt_Disk - Nikon 12" Rewriteable
IOMEGA_ZIP equ 049h ; Mag_Disk - Iomega Zip
IOMEGA_JAZ equ 04Ah ; Mag_Disk - Iomega Jaz
SYQUEST_EZ135 equ 04Bh ; Mag_Disk - Syquest EZ135
SYQUEST_EZFLYER equ 04Ch ; Mag_Disk - Syquest EzFlyer
SYQUEST_SYJET equ 04Dh ; Mag_Disk - Syquest SyJet
AVATAR_F2 equ 04Eh ; Mag_Disk - 2.5" Floppy
MP2_8mm equ 04Fh ; Tape - 8mm Hitachi
DST_S equ 050h ; Ampex DST Small Tapes
DST_M equ 051h ; Ampex DST Medium Tapes
DST_L equ 052h ; Ampex DST Large Tapes
VXATape_1 equ 053h ; Ecrix 8mm Tape
VXATape_2 equ 054h ; Ecrix 8mm Tape
STK_EAGLE equ 055h ; STK Eagle
LTO_Ultrium equ 056h ; IBM, HP, Seagate LTO Ultrium
LTO_Accelis equ 057h ; IBM, HP, Seagate LTO Accelis
DVD_RAM equ 058h ; Opt_Disk - DVD-RAM
AIT_8mm equ 059h ; AIT2 or higher
ADR_1 equ 05Ah ;
ADR_2 equ 05Bh ;
STK_9940 equ 05Ch ; STK 9940
MEDIA_ERASEABLE equ 00000001
MEDIA_WRITE_ONCE equ 00000002
MEDIA_READ_ONLY equ 00000004
MEDIA_READ_WRITE equ 00000008h
MEDIA_WRITE_PROTECTED equ 00000100h
MEDIA_CURRENTLY_MOUNTED equ 80000000h
; Define the different storage bus types
; Bus types below 128 (0x80) are reserved for Microsoft use
;typedef enum _STORAGE_BUS_TYPE {
BusTypeUnknown equ 0
BusTypeScsi equ 1
BusTypeAtapi equ 2
BusTypeAta equ 3
BusType1394 equ 4
BusTypeSsa equ 5
BusTypeFibre equ 6
BusTypeUsb equ 7
BusTypeRAID equ 8
BusTypeMaxReserved equ 07Fh
; Property Query Structures
; +
; IOCTL_STORAGE_QUERY_PROPERTY
;
; Input Buffer:
; a STORAGE_PROPERTY_QUERY structure which describes what type of query
; is being done, what property is being queried for, and any additional
; parameters which a particular property query requires.
;
; Output Buffer:
; Contains a buffer to place the results of the query into. Since all
; property descriptors can be cast into a STORAGE_DESCRIPTOR_HEADER,
; the IOCTL can be called once with a small buffer then again using
; a buffer as large as the header reports is necessary.
; -
; Types of queries
;typedef enum _STORAGE_QUERY_TYPE {
PropertyStandardQuery equ 0 ; Retrieves the descriptor
PropertyExistsQuery equ 1 ; Used to test whether the descriptor is supported
PropertyMaskQuery equ 2 ; Used to retrieve a mask of writeable fields in the descriptor
PropertyQueryMaxDefined equ 3 ; use to validate the value
; define some initial property id's
;typedef enum _STORAGE_PROPERTY_ID {
StorageDeviceProperty equ 0
StorageAdapterProperty equ 1
; Query structure - additional parameters for specific queries can follow
; the header
STORAGE_PROPERTY_QUERY STRUCT ; sizeof = 0Ch
; ID of the property being retrieved
PropertyId DWORD ? ; STORAGE_PROPERTY_ID
; Flags indicating the type of query being performed
QueryType DWORD ? ; STORAGE_QUERY_TYPE
; Space for additional parameters if necessary
AdditionalParameters db 1 dup(?)
db 3 dup(?) ; padding
STORAGE_PROPERTY_QUERY ENDS
PSTORAGE_PROPERTY_QUERY typedef ptr STORAGE_PROPERTY_QUERY
; Standard property descriptor header. All property pages should use this
; as their first element or should contain these two elements
STORAGE_DESCRIPTOR_HEADER STRUCT
Version DWORD ?
_Size DWORD ?
STORAGE_DESCRIPTOR_HEADER ENDS
PSTORAGE_DESCRIPTOR_HEADER typedef ptr STORAGE_DESCRIPTOR_HEADER
; +
; Device property descriptor - this is really just a rehash of the inquiry
; data retrieved from a scsi device
;
; This may only be retrieved from a target device. Sending this to the bus
; will result in an error
; -
STORAGE_DEVICE_DESCRIPTOR STRUCT ; sizeof = 28h
; Sizeof(STORAGE_DEVICE_DESCRIPTOR)
Version DWORD ? ; 000
; Total size of the descriptor, including the space for additional
; data and id strings
_Size DWORD ? ; 004
; The SCSI-2 device type
DeviceType BYTE ? ; 008
; The SCSI-2 device type modifier (if any) - this may be zero
DeviceTypeModifier BYTE ? ; 009
; Flag indicating whether the device's media (if any) is removable. This
; field should be ignored for media-less devices
RemovableMedia BOOLEAN ? ; 00A
; Flag indicating whether the device can support mulitple outstanding
; commands. The actual synchronization in this case is the responsibility
; of the port driver.
CommandQueueing BOOLEAN ? ; 00B
; Byte offset to the zero-terminated ascii string containing the device's
; vendor id string. For devices with no such ID this will be zero
VendorIdOffset DWORD ? ; 00C
; Byte offset to the zero-terminated ascii string containing the device's
; product id string. For devices with no such ID this will be zero
ProductIdOffset DWORD ? ; 010
; Byte offset to the zero-terminated ascii string containing the device's
; product revision string. For devices with no such string this will be
; zero
ProductRevisionOffset DWORD ? ; 014
; Byte offset to the zero-terminated ascii string containing the device's
; serial number. For devices with no serial number this will be zero
SerialNumberOffset DWORD ? ; 018
; Contains the bus type (as defined above) of the device. It should be
; used to interpret the raw device properties at the end of this structure
; (if any)
BusType DWORD ? ; 01C STORAGE_BUS_TYPE
; The number of bytes of bus-specific data which have been appended to
; this descriptor
RawPropertiesLength DWORD ? ; 020
; Place holder for the first byte of the bus specific property data
RawDeviceProperties db 1 dup(?) ; 024 start of array
db 3 dup(?) ; padding
STORAGE_DEVICE_DESCRIPTOR ENDS
PSTORAGE_DEVICE_DESCRIPTOR typedef ptr STORAGE_DEVICE_DESCRIPTOR
; +
; Adapter properties
;
; This descriptor can be retrieved from a target device object of from the
; device object for the bus. Retrieving from the target device object will
; forward the request to the underlying bus
; -
STORAGE_ADAPTER_DESCRIPTOR STRUCT ; sizeof 20h
Version DWORD ? ; 000
_Size DWORD ? ; 004
MaximumTransferLength DWORD ? ; 008
MaximumPhysicalPages DWORD ? ; 00C
AlignmentMask DWORD ? ; 010
AdapterUsesPio BOOLEAN ? ; 014
AdapterScansDown BOOLEAN ? ; 015
CommandQueueing BOOLEAN ? ; 016
AcceleratedTransfer BOOLEAN ? ; 017
BusType BOOLEAN ? ; 018
db ? ; padding
BusMajorVersion WORD ? ; 01A
BusMinorVersion WORD ? ; 01C
dw ? ; padding
STORAGE_ADAPTER_DESCRIPTOR ENDS
PSTORAGE_ADAPTER_DESCRIPTOR typedef ptr STORAGE_ADAPTER_DESCRIPTOR
ENDIF ; _NTDDSTOR_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -