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) 90 EVT_WDF_IO_TARGET_QUERY_REMOVE(
103 EVT_WDF_IO_TARGET_REMOVE_CANCELED(
116 EVT_WDF_IO_TARGET_REMOVE_COMPLETE(
359 (
STDCALL *PFN_WDFIOTARGETCREATE)(
394 (
STDCALL *PFN_WDFIOTARGETOPEN)(
424 (
STDCALL *PFN_WDFIOTARGETCLOSEFORQUERYREMOVE)(
434 WdfIoTargetCloseForQueryRemove(
449 (
STDCALL *PFN_WDFIOTARGETCLOSE)(
475 (
STDCALL *PFN_WDFIOTARGETSTART)(
502 (
STDCALL *PFN_WDFIOTARGETSTOP)(
535 (
STDCALL *PFN_WDFIOTARGETPURGE)(
567 (
STDCALL *PFN_WDFIOTARGETGETSTATE)(
592 (
STDCALL *PFN_WDFIOTARGETGETDEVICE)(
602 WdfIoTargetGetDevice(
618 (
STDCALL *PFN_WDFIOTARGETQUERYTARGETPROPERTY)(
638 WdfIoTargetQueryTargetProperty(
663 (
STDCALL *PFN_WDFIOTARGETALLOCANDQUERYTARGETPROPERTY)(
683 WdfIoTargetAllocAndQueryTargetProperty(
708 (
STDCALL *PFN_WDFIOTARGETQUERYFORINTERFACE)(
729 WdfIoTargetQueryForInterface(
754 (
STDCALL *PFN_WDFIOTARGETWDMGETTARGETDEVICEOBJECT)(
764 WdfIoTargetWdmGetTargetDeviceObject(
779 (
STDCALL *PFN_WDFIOTARGETWDMGETTARGETPHYSICALDEVICE)(
789 WdfIoTargetWdmGetTargetPhysicalDevice(
804 (
STDCALL *PFN_WDFIOTARGETWDMGETTARGETFILEOBJECT)(
814 WdfIoTargetWdmGetTargetFileObject(
829 (
STDCALL *PFN_WDFIOTARGETWDMGETTARGETFILEHANDLE)(
839 WdfIoTargetWdmGetTargetFileHandle(
855 (
STDCALL *PFN_WDFIOTARGETSENDREADSYNCHRONOUSLY)(
876 WdfIoTargetSendReadSynchronously(
902 (
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORREAD)(
921 WdfIoTargetFormatRequestForRead(
945 (
STDCALL *PFN_WDFIOTARGETSENDWRITESYNCHRONOUSLY)(
966 WdfIoTargetSendWriteSynchronously(
992 (
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORWRITE)(
1011 WdfIoTargetFormatRequestForWrite(
1035 (
STDCALL *PFN_WDFIOTARGETSENDIOCTLSYNCHRONOUSLY)(
1058 WdfIoTargetSendIoctlSynchronously(
1086 (
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORIOCTL)(
1109 WdfIoTargetFormatRequestForIoctl(
1137 (
STDCALL *PFN_WDFIOTARGETSENDINTERNALIOCTLSYNCHRONOUSLY)(
1160 WdfIoTargetSendInternalIoctlSynchronously(
1188 (
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTL)(
1211 WdfIoTargetFormatRequestForInternalIoctl(
1239 (
STDCALL *PFN_WDFIOTARGETSENDINTERNALIOCTLOTHERSSYNCHRONOUSLY)(
1264 WdfIoTargetSendInternalIoctlOthersSynchronously(
1294 (
STDCALL *PFN_WDFIOTARGETFORMATREQUESTFORINTERNALIOCTLOTHERS)(
1321 WdfIoTargetFormatRequestForInternalIoctlOthers(
1347 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 1353 #endif // _WDFIOTARGET_H_ _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
PFN_WDF_IO_TARGET_QUERY_REMOVE EvtIoTargetQueryRemove
_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
enum _WDF_IO_TARGET_PURGE_IO_ACTION WDF_IO_TARGET_PURGE_IO_ACTION
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_EXISTING_DEVICE(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params, _In_ PDEVICE_OBJECT DeviceObject)
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg2
PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete
struct _DEVICE_OBJECT * PDEVICE_OBJECT
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG DeviceOffset
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE Interface
_WDF_IO_TARGET_PURGE_IO_ACTION
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES IoTargetAttributes
PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
IN PVOID IN PVOID IN USHORT IN USHORT Size
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT Size
_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_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFIOTARGETCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG IoctlCode
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_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
_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
struct _WDF_IO_TARGET_OPEN_PARAMS * PWDF_IO_TARGET_OPEN_PARAMS
enum _WDF_IO_TARGET_OPEN_TYPE WDF_IO_TARGET_OPEN_TYPE
enum _WDF_IO_TARGET_SENT_IO_ACTION WDF_IO_TARGET_SENT_IO_ACTION
__GNU_EXTENSION typedef __int64 * PLONGLONG
_In_ PDEVICE_OBJECT DeviceObject
EVT_WDF_IO_TARGET_REMOVE_CANCELED * PFN_WDF_IO_TARGET_REMOVE_CANCELED
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFMEMORY * PropertyMemory
_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_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg2Offset
#define _IRQL_requires_same_
PDEVICE_OBJECT TargetDeviceObject
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
WDF_IO_TARGET_OPEN_TYPE Type
_Must_inspect_result_ _In_ WDFDEVICE Device
UNICODE_STRING TargetDeviceName
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
struct _WDF_IO_TARGET_OPEN_PARAMS WDF_IO_TARGET_OPEN_PARAMS
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OutputBufferOffset
EVT_WDF_IO_TARGET_REMOVE_COMPLETE * PFN_WDF_IO_TARGET_REMOVE_COMPLETE
WDF_EXTERN_C_START enum _WDF_IO_TARGET_STATE WDF_IO_TARGET_STATE
IN PVOID IN PVOID IN USHORT Version
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_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR OtherArg1
FORCEINLINE VOID WDF_IO_TARGET_OPEN_PARAMS_INIT_REOPEN(_Out_ PWDF_IO_TARGET_OPEN_PARAMS Params)
_Must_inspect_result_ _In_ WDFIOTARGET _In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE _In_opt_ PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_opt_ PVOID _Deref_out_range_(<=, BufferLength) PULONG ResultLength)
typedef _Function_class_(EVT_WDF_IO_TARGET_QUERY_REMOVE) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_IO_TARGET_QUERY_REMOVE(_In_ WDFIOTARGET IoTarget)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST Request
#define _Strict_type_match_
#define FILE_NON_DIRECTORY_FILE
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
#define _Out_writes_bytes_to_opt_(size, count)
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_ ULONG _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET OtherArg1Offset
_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_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID InterfaceType
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
_Must_inspect_result_ _In_ WDFIOTARGET _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _When_(BufferLength !=0, _Out_writes_bytes_to_opt_(BufferLength, *ResultLength)) _When_(BufferLength
_WDF_IO_TARGET_SENT_IO_ACTION
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
PFILE_OBJECT TargetFileObject
ACCESS_MASK DesiredAccess
_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_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFIOTARGET _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT _In_opt_ PVOID InterfaceSpecificData
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
EVT_WDF_IO_TARGET_QUERY_REMOVE * PFN_WDF_IO_TARGET_QUERY_REMOVE
#define WDF_EXTERN_C_START
_Must_inspect_result_ _In_ WDFIOTARGET _In_ WDFREQUEST _In_opt_ WDFMEMORY _In_opt_ PWDFMEMORY_OFFSET InputBufferOffset
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
WDF_EXTERN_C_START enum _WDF_IO_TARGET_STATE * PWDF_IO_TARGET_STATE