reactos/sdk/lib/drivers/wdf/shared/targets/fxtargetsshared.hpp
Victor Perevertkin 1f377076d7
[WDF] Fix KMDF so it can compile with ReactOS SDK
Not all files are included, but these are necessary to compile cdrom driver.
So far it can only be statically linked with drivers, a proper
implementation requires wdfldr helper driver
2020-11-03 00:06:27 +03:00

188 lines
4.3 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Module Name:
corepriv.hpp
Abstract:
This is the main driver framework.
Author:
Environment:
Both kernel and user mode
Revision History:
--*/
#pragma once
#if ((FX_CORE_MODE)==(FX_CORE_USER_MODE))
#define FX_IS_USER_MODE (TRUE)
#define FX_IS_KERNEL_MODE (FALSE)
#elif ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE))
#define FX_IS_USER_MODE (FALSE)
#define FX_IS_KERNEL_MODE (TRUE)
#endif
extern "C" {
#include "mx.h"
}
#include "fxmin.hpp"
#include "wdfmemory.h"
#include "wdfrequest.h"
#include "wdfdevice.h"
#include "wdfwmi.h"
#include "wdfchildlist.h"
#include "wdfpdo.h"
#include "wdffdo.h"
#include "wdfiotarget.h"
#include "wdfcontrol.h"
#include "wdfcx.h"
#include "wdfio.h"
#include "wdfqueryinterface.h"
#include "fxirpqueue.hpp"
#include "fxcallback.hpp"
#if (FX_CORE_MODE == FX_CORE_USER_MODE)
#include "fxirpum.hpp"
#elif ((FX_CORE_MODE)==(FX_CORE_KERNEL_MODE))
#include "fxirpkm.hpp"
#endif
#include "fxtransactionedlist.hpp"
#include "fxcollection.hpp"
#include "fxdeviceinitshared.hpp"
#include "fxdevicetomxinterface.hpp"
#include "fxrequestcontext.hpp"
#include "fxrequestcontexttypes.h"
#include "fxrequestbase.hpp"
#include "fxrequestbuffer.hpp"
#include "ifxmemory.hpp"
#include "fxiotarget.hpp"
#include "fxiotargetremote.hpp"
#include "fxiotargetself.hpp"
//
// Versioning of structures for wdfIoTarget.h
//
typedef struct _WDF_IO_TARGET_OPEN_PARAMS_V1_11 {
//
// Size of this structure in bytes
//
ULONG Size;
//
// Indicates which fields of this structure are going to be used in
// creating the WDFIOTARGET.
//
WDF_IO_TARGET_OPEN_TYPE Type;
//
// Notification when the target is being queried for removal.
// If !NT_SUCCESS is returned, the query will fail and the target will
// remain opened.
//
PFN_WDF_IO_TARGET_QUERY_REMOVE EvtIoTargetQueryRemove;
//
// The previous query remove has been canceled and the target can now be
// reopened.
//
PFN_WDF_IO_TARGET_REMOVE_CANCELED EvtIoTargetRemoveCanceled;
//
// The query remove has succeeded and the target is now removed from the
// system.
//
PFN_WDF_IO_TARGET_REMOVE_COMPLETE EvtIoTargetRemoveComplete;
// ========== WdfIoTargetOpenUseExistingDevice begin ==========
//
// The device object to send requests to
//
PDEVICE_OBJECT TargetDeviceObject;
//
// File object representing the TargetDeviceObject. The PFILE_OBJECT will
// be passed as a parameter in all requests sent to the resulting
// WDFIOTARGET.
//
PFILE_OBJECT TargetFileObject;
// ========== WdfIoTargetOpenUseExistingDevice end ==========
//
// ========== WdfIoTargetOpenByName begin ==========
//
// Name of the device to open.
//
UNICODE_STRING TargetDeviceName;
//
// The access desired on the device being opened up, ie WDM FILE_XXX_ACCESS
// such as FILE_ANY_ACCESS, FILE_SPECIAL_ACCESS, FILE_READ_ACCESS, or
// FILE_WRITE_ACCESS or you can use values such as GENERIC_READ,
// GENERIC_WRITE, or GENERIC_ALL.
//
ACCESS_MASK DesiredAccess;
//
// Share access desired on the target being opened, ie WDM FILE_SHARE_XXX
// values such as FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE.
//
// A zero value means exclusive access to the target.
//
ULONG ShareAccess;
//
// File attributes, see ZwCreateFile in the DDK for a list of valid
// values and their meaning.
//
ULONG FileAttributes;
//
// Create disposition, see ZwCreateFile in the DDK for a list of valid
// values and their meaning.
//
ULONG CreateDisposition;
//
// Options for opening the device, see CreateOptions for ZwCreateFile in the
// DDK for a list of valid values and their meaning.
//
ULONG CreateOptions;
PVOID EaBuffer;
ULONG EaBufferLength;
PLONGLONG AllocationSize;
// ========== WdfIoTargetOpenByName end ==========
//
//
// On return for a create by name, this will contain one of the following
// values: FILE_CREATED, FILE_OPENED, FILE_OVERWRITTEN, FILE_SUPERSEDED,
// FILE_EXISTS, FILE_DOES_NOT_EXIST
//
ULONG FileInformation;
} WDF_IO_TARGET_OPEN_PARAMS_V1_11, *PWDF_IO_TARGET_OPEN_PARAMS_V1_11;