ReactOS 0.4.16-dev-2633-g8dc9e50
ata_shared.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Storage Stack
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * or MIT (https://spdx.org/licenses/MIT)
5 * PURPOSE: Internal shared ATA driver definitions
6 * COPYRIGHT: Copyright 2026 Dmitry Borisov (di.sean@protonmail.com)
7 */
8
9#pragma once
10
12#define PCIIDEX_INTERFACE_VERSION 1
13
15#define ATA_MAX_DEVICE 15
16
24#define ATA_MIN_SECTOR_SIZE 512
25#define ATA_MAX_SECTORS_PER_IO 0x100
26#define ATA_MAX_TRANSFER_LENGTH (ATA_MAX_SECTORS_PER_IO * ATA_MIN_SECTOR_SIZE) // 0x20000
30#define ATA_MIN_BUFFER_ALIGNMENT FILE_WORD_ALIGNMENT
31
32#include <pshpack1.h>
33
35typedef struct _IDE_ACPI_TIMING_MODE_BLOCK
36{
37 struct
38 {
42#define IDE_ACPI_TIMING_MODE_NOT_SUPPORTED 0xFFFFFFFF // aka -1 ns
44
47#define IDE_ACPI_TIMING_MODE_FLAG_UDMA(Drive) (0x01 << (2 * (Drive)))
48
50#define IDE_ACPI_TIMING_MODE_FLAG_IORDY(Drive) (0x02 << (2 * (Drive)))
51
53#define IDE_ACPI_TIMING_MODE_FLAG_INDEPENDENT_TIMINGS 0x10
55
57typedef struct _ATA_ACPI_TASK_FILE
58{
67
68#include <poppack.h>
69
71
73{
80
82{
89
90typedef struct _IDE_REGISTERS
91{
93 union
94 {
97 };
98 union
99 {
102 };
104 union
105 {
109 };
110 union
111 {
115 };
117 union
118 {
121 };
122 union
123 {
126 };
130
132{
146
147typedef enum
148{
153
158
160{
162
164#define DEVICE_NUMBER_MASK 0x0000000F
165#define DEVICE_IS_ATAPI 0x00000010
166#define DEVICE_HAS_CDB_INTERRUPT 0x00000020
167#define DEVICE_NEED_DMA_DIRECTION 0x00000040
168#define DEVICE_IS_NEC_CDR260 0x00000080
169#define DEVICE_QUEUE_DEPTH_MASK 0x0000FF00
170
171#define DEVICE_QUEUE_DEPTH_SHIFT 8
172
177
179typedef struct _ATA_TASKFILE
180{
181 union
182 {
185 };
186 union
187 {
190 };
191 UCHAR LowLba;
192 UCHAR MidLba;
193 UCHAR HighLba;
204
206typedef struct _ATA_DEVICE_REQUEST
207{
208 union
209 {
212
215 };
216 union
217 {
218 UCHAR Cdb[16];
220 };
225 ULONG Flags;
234 union
235 {
236 struct
237 {
242 };
244 };
245
256
257#if DBG
259#define ATA_DEVICE_REQUEST_SIGNATURE 'rATA'
260#endif
262
264#define REQUEST_STATE_NONE 0
265
267#define REQUEST_STATE_NOT_STARTED 1
268
270#define REQUEST_STATE_REQUEUE 2
271
273#define REQUEST_STATE_FREEZE_QUEUE 3
274
278#define REQUEST_FLAG_DMA 0x00000001
279
281#define REQUEST_FLAG_PACKET_COMMAND 0x00000002
282
284#define REQUEST_FLAG_NCQ 0x00000004
285
287#define REQUEST_FLAG_DATA_IN 0x00000040
288
290#define REQUEST_FLAG_DATA_OUT 0x00000080
291
293#define REQUEST_FLAG_RST_COMMAND 0x00040000
297#define REQUEST_FLAG_LBA48 0x00000008
298
300#define REQUEST_FLAG_READ_WRITE_MULTIPLE 0x00000010
301
303#define REQUEST_FLAG_READ_WRITE 0x00000020
304
306#define REQUEST_FLAG_FUA 0x00000100
307
309#define REQUEST_FLAG_SAVE_TASK_FILE 0x00000200
310
312#define REQUEST_FLAG_HAS_TASK_FILE 0x00000400
313
315#define REQUEST_FLAG_SET_DEVICE_REGISTER 0x00000800
316
318#define REQUEST_FLAG_SET_AUXILIARY_FIELD 0x00001000
319
321#define REQUEST_FLAG_SET_ICC_FIELD 0x00002000
322
324#define REQUEST_FLAG_EXCLUSIVE 0x00004000
325
327#define REQUEST_FLAG_HAS_LOCAL_BUFFER 0x00008000
328
330#define REQUEST_FLAG_HAS_SG_LIST 0x00010000
331
333#define REQUEST_FLAG_HAS_MDL 0x00020000
334
336#define REQUEST_FLAG_HAS_RESERVED_MAPPING 0x00080000
337
339#define REQUEST_FLAG_NO_KEEP_AWAKE 0x00100000
340
342#define REQUEST_FLAG_PROGRAM_DMA 0x00200000
343
345#define REQUEST_FLAG_INTERNAL 0x00400000
346
348#define REQUEST_FLAG_PASSTHROUGH 0x00800000
349
350#define REQUEST_FLAG_DEVICE_EXCLUSIVE_ACCESS 0x01000000
351
353#define REQUEST_FLAG_POLL 0x80000000
354
365#define REQUEST_EXCLUSIVE_ACCESS_FLAGS \
366 (REQUEST_FLAG_SAVE_TASK_FILE | REQUEST_FLAG_EXCLUSIVE)
367
369#define REQUEST_DMA_FLAGS \
370 (REQUEST_FLAG_DMA | REQUEST_FLAG_PROGRAM_DMA)
371
372typedef VOID
373(__cdecl PORT_NOTIFICATION)(
376 ...);
377typedef PORT_NOTIFICATION *PPORT_NOTIFICATION;
378
379typedef NTSTATUS
381 _In_ PVOID ChannelContext,
382 _In_ BOOLEAN Attach);
384
385typedef VOID
387 _In_ PVOID ChannelContext,
389 _In_ PIDENTIFY_DEVICE_DATA IdentifyDeviceData);
391
392typedef PVOID
394 _In_ PVOID ChannelContext,
397
398typedef BOOLEAN
400 _In_ PVOID ChannelContext);
402
403typedef VOID
405 _In_ PVOID ChannelContext,
406 _In_ BOOLEAN DisableInterrupts);
408
409typedef VOID
411 _In_ PVOID ChannelContext);
413
414typedef ULONG
416 _In_ PVOID ChannelContext);
418
421 _In_ PVOID ChannelContext,
424
426typedef VOID
427(CHANNEL_SET_MODE)(
428 _In_ PVOID ChannelContext,
430typedef CHANNEL_SET_MODE *PCHANNEL_SET_MODE;
431
433typedef BOOLEAN
434(CHANNEL_ALLOCATE_SLOT)(
435 _In_ PVOID ChannelContext,
438typedef CHANNEL_ALLOCATE_SLOT *PCHANNEL_ALLOCATE_SLOT;
439
441typedef VOID
442(CHANNEL_PREPARE_PRD_TABLE)(
443 _In_ PVOID ChannelContext,
446typedef CHANNEL_PREPARE_PRD_TABLE *PCHANNEL_PREPARE_PRD_TABLE;
447
449typedef VOID
450(CHANNEL_PREPARE_IO)(
451 _In_ PVOID ChannelContext,
453typedef CHANNEL_PREPARE_IO *PCHANNEL_PREPARE_IO;
454
456typedef BOOLEAN
457(CHANNEL_START_IO)(
458 _In_ PVOID ChannelContext,
460typedef CHANNEL_START_IO *PCHANNEL_START_IO;
461
462typedef NTSTATUS
466 _Out_ PVOID *ControllerContext);
468
469typedef NTSTATUS
471 _In_ PVOID ControllerContext,
474
475typedef VOID
477 _In_ PVOID ControllerContext);
479
480/* ReactOS-specific legacy detection magic */
481#define PCIIDEX_GET_CONTROLLER_INTERFACE_SIGNATURE (0xFFFFFFFF - 0x1000)
482
489{
495
502{
503 /* Common interface header */
509
535#define ATA_CHANNEL_FLAG_PIO_VIA_DMA 0x00000001
536#define ATA_CHANNEL_FLAG_IS_EXTERNAL 0x00000002
537#define ATA_CHANNEL_FLAG_NCQ 0x00000004
538#define ATA_CHANNEL_FLAG_IS_AHCI 0x00000008
539#define ATA_CHANNEL_FLAG_PIO_FOR_LBA48_XFER 0x00000010
540
545
546DEFINE_GUID(GUID_PCIIDE_INTERFACE_ROS,
547 0xD677FBCF, 0xABED, 0x47C8, 0x80, 0xA3, 0xE4, 0x34, 0x7E, 0xA4, 0x96, 0x47);
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
CONTROLLER_PNP_START_DEVICE * PCONTROLLER_PNP_START_DEVICE
Definition: ata_shared.h:473
ATA_COMPLETION_ACTION
Definition: ata_shared.h:148
@ COMPLETE_START_AGAIN
Definition: ata_shared.h:151
@ COMPLETE_NO_IRP
Definition: ata_shared.h:150
@ COMPLETE_IRP
Definition: ata_shared.h:149
BOOLEAN() CHANNEL_DOWNGRADE_INTERFACE_SPEED(_In_ PVOID ChannelContext)
Definition: ata_shared.h:399
_ATA_CONNECTION_STATUS
Definition: ata_shared.h:82
@ CONN_STATUS_FAILURE
Definition: ata_shared.h:83
@ CONN_STATUS_DEV_UNKNOWN
Definition: ata_shared.h:85
@ CONN_STATUS_DEV_ATA
Definition: ata_shared.h:86
@ CONN_STATUS_DEV_ATAPI
Definition: ata_shared.h:87
@ CONN_STATUS_NO_DEVICE
Definition: ata_shared.h:84
enum _PORT_NOTIFICATION_TYPE PORT_NOTIFICATION_TYPE
NTSTATUS() CONTROLLER_ATTACH_CHANNEL(_In_ PVOID ChannelContext, _In_ BOOLEAN Attach)
Definition: ata_shared.h:380
VOID() CONTROLLER_PNP_REMOVE_DEVICE(_In_ PVOID ControllerContext)
Definition: ata_shared.h:476
struct _IDE_REGISTERS * PIDE_REGISTERS
enum _PORT_NOTIFICATION_TYPE * PPORT_NOTIFICATION_TYPE
VOID() CHANNEL_ABORT_CHANNEL(_In_ PVOID ChannelContext, _In_ BOOLEAN DisableInterrupts)
Definition: ata_shared.h:404
CHANNEL_ALLOCATE_SLOT * PCHANNEL_ALLOCATE_SLOT
Definition: ata_shared.h:438
struct _ATA_ACPI_TASK_FILE * PATA_ACPI_TASK_FILE
CHANNEL_IDENTIFY_DEVICE * PCHANNEL_IDENTIFY_DEVICE
Definition: ata_shared.h:423
NTSTATUS() CONTROLLER_PNP_START_DEVICE(_In_ PVOID ControllerContext, _In_ PCM_RESOURCE_LIST ResourcesTranslated)
Definition: ata_shared.h:470
_In_ PATA_DEVICE_REQUEST _In_ BOOLEAN Allocate
Definition: ata_shared.h:437
CHANNEL_ABORT_CHANNEL * PCHANNEL_ABORT_CHANNEL
Definition: ata_shared.h:407
struct _ATA_IO_CONTEXT_COMMON * PATA_IO_CONTEXT_COMMON
struct _PCIIDEX_LEGACY_CONTROLLER_INTERFACE * PPCIIDEX_LEGACY_CONTROLLER_INTERFACE
struct _IDE_REGISTERS IDE_REGISTERS
_In_ PVOID typedef PORT_NOTIFICATION * PPORT_NOTIFICATION
Definition: ata_shared.h:377
CHANNEL_START_IO * PCHANNEL_START_IO
Definition: ata_shared.h:460
struct _IDE_ACPI_TIMING_MODE_BLOCK * PIDE_ACPI_TIMING_MODE_BLOCK
enum _ATA_CONNECTION_STATUS ATA_CONNECTION_STATUS
VOID() CHANNEL_RESET_CHANNEL(_In_ PVOID ChannelContext)
Definition: ata_shared.h:410
struct _ATA_DEVICE_REQUEST ATA_DEVICE_REQUEST
Definition: ata_shared.h:70
#define ATA_MAX_DEVICE
Definition: ata_shared.h:15
struct _CHANNEL_DEVICE_CONFIG CHANNEL_DEVICE_CONFIG
CHANNEL_SET_MODE * PCHANNEL_SET_MODE
Definition: ata_shared.h:430
CONTROLLER_ATTACH_CHANNEL * PCONTROLLER_ATTACH_CHANNEL
Definition: ata_shared.h:383
ULONG() CHANNEL_ENUMERATE_CHANNEL(_In_ PVOID ChannelContext)
Definition: ata_shared.h:415
struct _ATA_ACPI_TASK_FILE ATA_ACPI_TASK_FILE
struct _IDE_ACPI_TIMING_MODE_BLOCK IDE_ACPI_TIMING_MODE_BLOCK
REQUEST_COMPLETION_ROUTINE * PREQUEST_COMPLETION_ROUTINE
Definition: ata_shared.h:157
NTSTATUS() CONTROLLER_PNP_ADD_DEVICE(_In_ PDRIVER_OBJECT DriverObject, _In_ PDEVICE_OBJECT PhysicalDeviceObject, _Out_ PVOID *ControllerContext)
Definition: ata_shared.h:463
PVOID() CHANNEL_GET_INIT_TASK_FILE(_In_ PVOID ChannelContext, _In_ PDEVICE_OBJECT DeviceObject)
Definition: ata_shared.h:393
struct _PCIIDEX_CHANNEL_INTERFACE * PPCIIDEX_CHANNEL_INTERFACE
struct _PCIIDEX_LEGACY_CONTROLLER_INTERFACE PCIIDEX_LEGACY_CONTROLLER_INTERFACE
Legacy detection interface with the PCIIDEX driver.
CHANNEL_PREPARE_PRD_TABLE * PCHANNEL_PREPARE_PRD_TABLE
Definition: ata_shared.h:446
VOID() CHANNEL_SET_DEVICE_DATA(_In_ PVOID ChannelContext, _In_ PDEVICE_OBJECT DeviceObject, _In_ PIDENTIFY_DEVICE_DATA IdentifyDeviceData)
Definition: ata_shared.h:386
struct _CHANNEL_DEVICE_CONFIG * PCHANNEL_DEVICE_CONFIG
CHANNEL_GET_INIT_TASK_FILE * PCHANNEL_GET_INIT_TASK_FILE
Definition: ata_shared.h:396
CHANNEL_RESET_CHANNEL * PCHANNEL_RESET_CHANNEL
Definition: ata_shared.h:412
_In_ PVOID PortContext
Definition: ata_shared.h:375
CHANNEL_DOWNGRADE_INTERFACE_SPEED * PCHANNEL_DOWNGRADE_INTERFACE_SPEED
Definition: ata_shared.h:401
CONTROLLER_PNP_REMOVE_DEVICE * PCONTROLLER_PNP_REMOVE_DEVICE
Definition: ata_shared.h:478
_In_ PATA_DEVICE_REQUEST Request
Definition: ata_shared.h:436
CONTROLLER_PNP_ADD_DEVICE * PCONTROLLER_PNP_ADD_DEVICE
Definition: ata_shared.h:467
CHANNEL_PREPARE_IO * PCHANNEL_PREPARE_IO
Definition: ata_shared.h:453
ATA_COMPLETION_ACTION() REQUEST_COMPLETION_ROUTINE(_In_ PATA_DEVICE_REQUEST Request)
Definition: ata_shared.h:155
CHANNEL_ENUMERATE_CHANNEL * PCHANNEL_ENUMERATE_CHANNEL
Definition: ata_shared.h:417
CHANNEL_SET_DEVICE_DATA * PCHANNEL_SET_DEVICE_DATA
Definition: ata_shared.h:390
_PORT_NOTIFICATION_TYPE
Definition: ata_shared.h:73
@ AtaRequestFailed
Definition: ata_shared.h:77
@ AtaBusChangeDetected
Definition: ata_shared.h:76
@ AtaAsyncNotificationDetected
Definition: ata_shared.h:78
@ AtaResetDetected
Definition: ata_shared.h:75
@ AtaRequestComplete
Definition: ata_shared.h:74
struct _ATA_IO_CONTEXT_COMMON ATA_IO_CONTEXT_COMMON
struct _ATA_TASKFILE ATA_TASKFILE
struct _ATA_TASKFILE * PATA_TASKFILE
_In_ PATA_DEVICE_REQUEST _In_ SCATTER_GATHER_LIST *__restrict SgList
Definition: ata_shared.h:445
struct _PCIIDEX_CHANNEL_INTERFACE PCIIDEX_CHANNEL_INTERFACE
Channel interface with the PCIIDEX driver.
struct _ATA_DEVICE_REQUEST * PATA_DEVICE_REQUEST
Definition: ata_shared.h:70
ATA_CONNECTION_STATUS() CHANNEL_IDENTIFY_DEVICE(_In_ PVOID ChannelContext, _In_ ULONG DeviceNumber)
Definition: ata_shared.h:420
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
#define NTSTATUS
Definition: precomp.h:19
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: precomp.h:16
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
Definition: precomp.h:13
PDEVICE_LIST DeviceList
Definition: utils.c:27
#define __cdecl
Definition: corecrt.h:121
static const WCHAR Signature[]
Definition: parser.c:141
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define HIGH_LEVEL
Definition: env_spec_w32.h:703
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define MAX_IDE_DEVICE
Definition: ide.h:32
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
PSCATTER_GATHER_LIST SgList
Definition: ata_shared.h:222
PATA_IO_CONTEXT_COMMON Device
Definition: ata_shared.h:223
SLIST_ENTRY CompletionEntry
Definition: ata_shared.h:211
ATA_TASKFILE TaskFile
Definition: hwidep.h:163
PREQUEST_COMPLETION_ROUTINE Complete
Definition: ata_shared.h:230
UCHAR Cdb[16]
Definition: hwidep.h:162
ATA_TASKFILE Output
ATA normal/error outputs.
Definition: ata_shared.h:255
LIST_ENTRY PortEntry
Definition: ata_shared.h:214
ULONG DataTransferLength
Definition: hwidep.h:175
PSCSI_REQUEST_BLOCK Srb
Definition: ata_shared.h:228
UCHAR SectorCountEx
Definition: ata_shared.h:200
UCHAR SectorCount
Definition: hwidep.h:151
UCHAR Feature
Definition: hwidep.h:150
UCHAR MidLba
LBA bits 8-15.
Definition: hwidep.h:153
UCHAR LowLbaEx
LBA bits 24-31.
Definition: ata_shared.h:195
UCHAR HighLba
LBA bits 16-23.
Definition: hwidep.h:154
ULONG Auxiliary
Definition: ata_shared.h:202
UCHAR Icc
Isochronous Command Completion.
Definition: ata_shared.h:201
UCHAR FeatureEx
Definition: ata_shared.h:198
UCHAR HighLbaEx
LBA bits 40-47.
Definition: ata_shared.h:197
UCHAR Command
Definition: hwidep.h:147
UCHAR DriveSelect
Definition: hwidep.h:146
UCHAR LowLba
LBA bits 0-7.
Definition: hwidep.h:152
UCHAR MidLbaEx
LBA bits 32-39.
Definition: ata_shared.h:196
PIDENTIFY_DEVICE_DATA IdentifyDeviceData
Definition: ata_shared.h:144
struct _IDE_ACPI_TIMING_MODE_BLOCK::@1699 Drive[2]
ULONG PioSpeed
PIO cycle timing in ns.
ULONG DmaSpeed
DMA cycle timing in ns.
PUCHAR LbaMid
LBA bits 8-15, 32-39.
Definition: ata_shared.h:106
PUCHAR LbaHigh
LBA bits 16-23, 40-47.
Definition: ata_shared.h:112
PUCHAR ByteCountLow
Definition: ata_shared.h:107
PUCHAR SignatureLow
Definition: ata_shared.h:108
PUCHAR SectorCount
Definition: ata_shared.h:100
PUCHAR LbaLow
LBA bits 0-7, 24-31.
Definition: ata_shared.h:103
PUCHAR ByteCountHigh
Definition: ata_shared.h:113
PUCHAR Control
Definition: ata_shared.h:124
PUCHAR Error
Definition: ata_shared.h:96
PUCHAR InterruptReason
Definition: ata_shared.h:101
PUCHAR AlternateStatus
Definition: ata_shared.h:125
PUCHAR Features
Definition: ata_shared.h:95
PUCHAR Command
Definition: ata_shared.h:119
PUCHAR SignatureHigh
Definition: ata_shared.h:114
Definition: typedefs.h:120
Channel interface with the PCIIDEX driver.
Definition: ata_shared.h:502
PPORT_NOTIFICATION * PortNotification
Definition: ata_shared.h:542
PCHANNEL_SET_MODE SetTransferMode
Definition: ata_shared.h:526
PINTERFACE_REFERENCE InterfaceReference
Definition: ata_shared.h:507
PCHANNEL_ALLOCATE_SLOT AllocateSlot
Definition: ata_shared.h:527
PCHANNEL_RESET_CHANNEL ResetChannel
Definition: ata_shared.h:523
PCHANNEL_DOWNGRADE_INTERFACE_SPEED DowngradeInterfaceSpeed
Definition: ata_shared.h:521
PCHANNEL_IDENTIFY_DEVICE IdentifyDevice
Definition: ata_shared.h:525
PCHANNEL_GET_INIT_TASK_FILE GetInitTaskFile
Definition: ata_shared.h:520
PCHANNEL_ABORT_CHANNEL AbortChannel
Definition: ata_shared.h:522
PCHANNEL_SET_DEVICE_DATA SetDeviceData
Definition: ata_shared.h:519
PCHANNEL_START_IO StartIo
Definition: ata_shared.h:530
PCONTROLLER_OBJECT HwSyncObject
Definition: ata_shared.h:531
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: ata_shared.h:508
PCHANNEL_PREPARE_IO PrepareIo
Definition: ata_shared.h:529
PCONTROLLER_ATTACH_CHANNEL AttachChannel
Definition: ata_shared.h:511
PCHANNEL_PREPARE_PRD_TABLE PreparePrdTable
Definition: ata_shared.h:528
PATA_DEVICE_REQUEST ** Slots
Definition: ata_shared.h:543
PDEVICE_OBJECT ChannelObject
Definition: ata_shared.h:533
PCHANNEL_ENUMERATE_CHANNEL EnumerateChannel
Definition: ata_shared.h:524
Legacy detection interface with the PCIIDEX driver.
Definition: ata_shared.h:489
PCONTROLLER_PNP_REMOVE_DEVICE RemoveDevice
Definition: ata_shared.h:493
PCONTROLLER_PNP_START_DEVICE StartDevice
Definition: ata_shared.h:492
PCONTROLLER_PNP_ADD_DEVICE AddDevice
Definition: ata_shared.h:491
#define SLIST_ENTRY(type)
Definition: queue.h:102
unsigned char UCHAR
Definition: typedefs.h:53
void * PVOID
Definition: typedefs.h:50
const char * PCSTR
Definition: typedefs.h:52
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ WDFCMRESLIST _In_ WDFCMRESLIST ResourcesTranslated
Definition: wdfdevice.h:891
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
Definition: wdfdevice.h:1024
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
struct _SCATTER_GATHER_LIST SCATTER_GATHER_LIST
Definition: iotypes.h:2206
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
Definition: iotypes.h:2206