mirror of
https://github.com/reactos/reactos.git
synced 2025-01-05 22:12:46 +00:00
1f377076d7
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
187 lines
4.3 KiB
C++
187 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;
|