⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntddstor.inc

📁 这是asm驱动的开发包
💻 INC
📖 第 1 页 / 共 2 页
字号:
    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 + -