29#ifndef _WDFIOTARGET_H_
30#define _WDFIOTARGET_H_
34 #define WDF_EXTERN_C extern "C"
35 #define WDF_EXTERN_C_START extern "C" {
36 #define WDF_EXTERN_C_END }
39 #define WDF_EXTERN_C_START
40 #define WDF_EXTERN_C_END
49#if (NTDDI_VERSION >= NTDDI_WIN2K)
90EVT_WDF_IO_TARGET_QUERY_REMOVE(
103EVT_WDF_IO_TARGET_REMOVE_CANCELED(
116EVT_WDF_IO_TARGET_REMOVE_COMPLETE(
359(
STDCALL *PFN_WDFIOTARGETCREATE)(
424(
STDCALL *PFN_WDFIOTARGETCLOSEFORQUERYREMOVE)(
434WdfIoTargetCloseForQueryRemove(
449(
STDCALL *PFN_WDFIOTARGETCLOSE)(
475(
STDCALL *PFN_WDFIOTARGETSTART)(
535(
STDCALL *PFN_WDFIOTARGETPURGE)(
567(
STDCALL *PFN_WDFIOTARGETGETSTATE)(
592(
STDCALL *PFN_WDFIOTARGETGETDEVICE)(
618(
STDCALL *PFN_WDFIOTARGETQUERYTARGETPROPERTY)(
638WdfIoTargetQueryTargetProperty(
663(
STDCALL *PFN_WDFIOTARGETALLOCANDQUERYTARGETPROPERTY)(
683WdfIoTargetAllocAndQueryTargetProperty(
708(
STDCALL *PFN_WDFIOTARGETQUERYFORINTERFACE)(
729WdfIoTargetQueryForInterface(
754(
STDCALL *PFN_WDFIOTARGETWDMGETTARGETDEVICEOBJECT)(
764WdfIoTargetWdmGetTargetDeviceObject(
779(
STDCALL *PFN_WDFIOTARGETWDMGETTARGETPHYSICALDEVICE)(
789WdfIoTargetWdmGetTargetPhysicalDevice(
804(
STDCALL *PFN_WDFIOTARGETWDMGETTARGETFILEOBJECT)(
814WdfIoTargetWdmGetTargetFileObject(
829(
STDCALL *PFN_WDFIOTARGETWDMGETTARGETFILEHANDLE)(
839WdfIoTargetWdmGetTargetFileHandle(
855(
STDCALL *PFN_WDFIOTARGETSENDREADSYNCHRONOUSLY)(
876WdfIoTargetSendReadSynchronously(
902(
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORREAD)(
921WdfIoTargetFormatRequestForRead(
945(
STDCALL *PFN_WDFIOTARGETSENDWRITESYNCHRONOUSLY)(
966WdfIoTargetSendWriteSynchronously(
992(
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORWRITE)(
1011WdfIoTargetFormatRequestForWrite(
1035(
STDCALL *PFN_WDFIOTARGETSENDIOCTLSYNCHRONOUSLY)(
1058WdfIoTargetSendIoctlSynchronously(
1086(
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORIOCTL)(
1109WdfIoTargetFormatRequestForIoctl(
1137(
STDCALL *PFN_WDFIOTARGETSENDINTERNALIOCTLSYNCHRONOUSLY)(
1160WdfIoTargetSendInternalIoctlSynchronously(
1188(
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTL)(
1211WdfIoTargetFormatRequestForInternalIoctl(
1239(
STDCALL *PFN_WDFIOTARGETSENDINTERNALIOCTLOTHERSSYNCHRONOUSLY)(
1264WdfIoTargetSendInternalIoctlOthersSynchronously(
1294(
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTLOTHERS)(
1321WdfIoTargetFormatRequestForInternalIoctlOthers(
#define FILE_NON_DIRECTORY_FILE
#define _IRQL_requires_same_
struct _DEVICE_OBJECT * PDEVICE_OBJECT
#define _Must_inspect_result_
#define _Strict_type_match_
#define _Out_writes_bytes_to_opt_(s, c)
#define _Function_class_(n)
__GNU_EXTENSION typedef __int64 * PLONGLONG
PDEVICE_OBJECT TargetDeviceObject
WDF_IO_TARGET_OPEN_TYPE Type
PFILE_OBJECT TargetFileObject
UNICODE_STRING TargetDeviceName
PFN_WDF_IO_TARGET_QUERY_REMOVE EvtIoTargetQueryRemove
ACCESS_MASK DesiredAccess
PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled
PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
PWDF_DRIVER_GLOBALS WdfDriverGlobals
@ WdfIoTargetCreateTableIndex
@ WdfIoTargetPurgeTableIndex
@ WdfIoTargetCloseTableIndex
@ WdfIoTargetWdmGetTargetFileObjectTableIndex
@ WdfIoTargetStopTableIndex
@ WdfIoTargetCloseForQueryRemoveTableIndex
@ WdfIoTargetFormatRequestForIoctlTableIndex
@ WdfIoTargetOpenTableIndex
@ WdfIoTargetSendInternalIoctlOthersSynchronouslyTableIndex
@ WdfIoTargetQueryForInterfaceTableIndex
@ WdfIoTargetGetStateTableIndex
@ WdfIoTargetFormatRequestForReadTableIndex
@ WdfIoTargetFormatRequestForInternalIoctlOthersTableIndex
@ WdfIoTargetSendIoctlSynchronouslyTableIndex
@ WdfIoTargetWdmGetTargetPhysicalDeviceTableIndex
@ WdfIoTargetFormatRequestForInternalIoctlTableIndex
@ WdfIoTargetAllocAndQueryTargetPropertyTableIndex
@ WdfIoTargetSendWriteSynchronouslyTableIndex
@ WdfIoTargetSendReadSynchronouslyTableIndex
@ WdfIoTargetFormatRequestForWriteTableIndex
@ WdfIoTargetWdmGetTargetDeviceObjectTableIndex
@ WdfIoTargetQueryTargetPropertyTableIndex
@ WdfIoTargetSendInternalIoctlSynchronouslyTableIndex
@ WdfIoTargetGetDeviceTableIndex
@ WdfIoTargetStartTableIndex
@ WdfIoTargetWdmGetTargetFileHandleTableIndex
enum _WDF_IO_TARGET_PURGE_IO_ACTION WDF_IO_TARGET_PURGE_IO_ACTION
enum _WDF_IO_TARGET_OPEN_TYPE WDF_IO_TARGET_OPEN_TYPE
EVT_WDF_IO_TARGET_REMOVE_CANCELED * PFN_WDF_IO_TARGET_REMOVE_CANCELED
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg2
@ WdfIoTargetOpenUndefined
@ WdfIoTargetOpenLocalTargetByFile
@ WdfIoTargetOpenUseExistingDevice
struct _WDF_IO_TARGET_OPEN_PARAMS * PWDF_IO_TARGET_OPEN_PARAMS
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID _Deref_out_range_(<=, BufferLength) PULONG ResultLength)
_Must_inspect_result_ _In_ WDFIOTARGET _In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg4Offset
struct _WDF_IO_TARGET_OPEN_PARAMS WDF_IO_TARGET_OPEN_PARAMS
_Must_inspect_result_ _In_ WDFDEVICE Device
_WDF_IO_TARGET_SENT_IO_ACTION
@ WdfIoTargetCancelSentIo
@ WdfIoTargetWaitForSentIoToComplete
@ WdfIoTargetSentIoUndefined
@ WdfIoTargetLeaveSentIoPending
enum _WDF_IO_TARGET_SENT_IO_ACTION WDF_IO_TARGET_SENT_IO_ACTION
@ WdfIoTargetStateUndefined
@ WdfIoTargetClosedForQueryRemove
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES IoTargetAttributes
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params, _In_ PDEVICE_OBJECT DeviceObject)
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT Size
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID InterfaceType
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG IoctlCode
EVT_WDF_IO_TARGET_REMOVE_COMPLETE * PFN_WDF_IO_TARGET_REMOVE_COMPLETE
#define WDF_EXTERN_C_START
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_WDF_IO_TARGET_PURGE_IO_ACTION
@ WdfIoTargetPurgeIoUndefined
@ WdfIoTargetPurgeIoAndWait
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
EVT_WDF_IO_TARGET_QUERY_REMOVE * PFN_WDF_IO_TARGET_QUERY_REMOVE
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
WDF_EXTERN_C_START enum _WDF_IO_TARGET_STATE WDF_IO_TARGET_STATE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg1
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
_Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFIOTARGETCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST Request
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_CREATE_BY_NAME(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params, _In_ PCUNICODE_STRING TargetDeviceName, _In_ ACCESS_MASK DesiredAccess)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg4
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
WDF_EXTERN_C_START enum _WDF_IO_TARGET_STATE * PWDF_IO_TARGET_STATE
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg2Offset
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE Interface
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _When_(BufferLength !=0, _Out_writes_bytes_to_opt_(BufferLength, *ResultLength)) _When_(BufferLength
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_REOPEN(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID PropertyBuffer
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_OPEN_BY_NAME(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params, _In_ PCUNICODE_STRING TargetDeviceName, _In_ ACCESS_MASK DesiredAccess)
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET InputBufferOffset
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS RequestOptions
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg1Offset
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params