26#ifndef _FXIOTARGETREMOTE_H_
27#define _FXIOTARGETREMOTE_H_
35#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
222#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
239#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
324#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
326 DRIVER_NOTIFICATION_CALLBACK_ROUTINE
340 IWudfIoDispatcher * m_pIoDispatcher;
341 IWudfRemoteDispatcher * m_pRemoteDispatcher;
366 pSubmitIrp->SetNextIrpStackLocation();
371 m_pIoDispatcher->Dispatch(pSubmitIrp,
NULL);
434#if (FX_CORE_MODE == FX_CORE_KERNEL_MODE)
void __inline CallbackStart(VOID)
void __inline CallbackEnd(VOID)
FxIoTargetClearedPointers * m_ClearedPointers
FxIoTargetRemoveComplete m_EvtRemoveComplete
_Must_inspect_result_ NTSTATUS OpenLocalTargetByFile(_In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams)
HANDLE GetTargetHandle(VOID)
__inline WDFIOTARGET GetHandle(VOID)
FxIoTargetQueryRemove m_EvtQueryRemove
virtual VOID ClearTargetPointers(VOID)
BOOLEAN CanRegisterForPnpNotification(VOID)
VOID ResetTargetNotifyHandle(VOID)
FxIoTargetRemoveOpenParams m_OpenParams
NTSTATUS InitRemote(__in FxDeviceBase *Device)
NTSTATUS GetTargetDeviceRelations(_Out_ BOOLEAN *Close)
VOID UnregisterForPnpNotification(_In_ MdTargetNotifyHandle Handle)
MdTargetNotifyHandle m_TargetNotifyHandle
NTSTATUS RegisterForPnpNotification(VOID)
NTSTATUS InitRemoteModeSpecific(__in FxDeviceBase *Device)
VOID RemoveModeSpecific(VOID)
FxIoTargetRemoveCanceled m_EvtRemoveCanceled
NTSTATUS OpenTargetHandle(_In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams, _Inout_ FxIoTargetRemoveOpenParams *pParams)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDeviceBase *Device, __out FxIoTargetRemote **Target)
VOID CloseTargetHandle(VOID)
_Must_inspect_result_ NTSTATUS QueryInterface(__in FxQueryInterfaceParams *Params)
static DRIVER_NOTIFICATION_CALLBACK_ROUTINE _PlugPlayNotification
NTSTATUS _Must_inspect_result_ QueryInterface(__inout FxQueryInterfaceParams *Params)
virtual VOID Forward(__in MdIrp Irp)
MdFileObject m_TargetFileObject
IWudfIoIrp * GetIoIrp(VOID)
IN PVCB IN PDIRENT OUT PULONG EaLength
return pObject GetObjectHandle()
FxIoTargetRemoteCloseReason
@ FxIoTargetRemoteCloseReasonPlainClose
@ FxIoTargetRemoteCloseReasonQueryRemove
@ FxIoTargetRemoteCloseReasonDelete
PVOID MdTargetNotifyHandle
FxIoTargetRemoteOpenState
@ FxIoTargetRemoteOpenStateClosed
@ FxIoTargetRemoteOpenStateOpening
@ FxIoTargetRemoteOpenStateOpen
@ FX_TYPE_IO_TARGET_REMOTE
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
PFILE_OBJECT MdFileObject
#define _Must_inspect_result_
MdFileObject TargetFileObject
PFN_WDF_IO_TARGET_QUERY_REMOVE m_Method
_Must_inspect_result_ NTSTATUS Invoke(__in WDFIOTARGET IoTarget)
FxIoTargetQueryRemove(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
VOID Invoke(__in WDFIOTARGET Target)
PFN_WDF_IO_TARGET_REMOVE_CANCELED m_Method
FxIoTargetRemoveCanceled(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
FxIoTargetRemoveComplete(__in PFX_DRIVER_GLOBALS FxDriverGlobals)
PFN_WDF_IO_TARGET_REMOVE_COMPLETE m_Method
VOID Invoke(__in WDFIOTARGET Target)
FxIoTargetRemoveOpenParams()
LARGE_INTEGER AllocationSize
ACCESS_MASK DesiredAccess
WDF_IO_TARGET_OPEN_TYPE OpenType
__field_bcount(EaBufferLength) PVOID EaBuffer
PLARGE_INTEGER AllocationSizePointer
UNICODE_STRING TargetDeviceName
#define RtlZeroMemory(Destination, Length)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
enum _WDF_IO_TARGET_OPEN_TYPE WDF_IO_TARGET_OPEN_TYPE
EVT_WDF_IO_TARGET_REMOVE_CANCELED * PFN_WDF_IO_TARGET_REMOVE_CANCELED
@ WdfIoTargetOpenLocalTargetByFile
_Must_inspect_result_ _In_ WDFIOTARGET _In_ PWDF_IO_TARGET_OPEN_PARAMS OpenParams
_Must_inspect_result_ _In_ WDFDEVICE _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFIOTARGET * IoTarget
EVT_WDF_IO_TARGET_REMOVE_COMPLETE * PFN_WDF_IO_TARGET_REMOVE_COMPLETE
EVT_WDF_IO_TARGET_QUERY_REMOVE * PFN_WDF_IO_TARGET_QUERY_REMOVE
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer