ReactOS  0.4.15-dev-3165-gdf6fff7
wdfpdo.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _WDF_PDO_EVENT_CALLBACKS
 

Macros

#define WDF_EXTERN_C
 
#define WDF_EXTERN_C_START
 
#define WDF_EXTERN_C_END
 

Typedefs

typedef EVT_WDF_DEVICE_RESOURCES_QUERY * PFN_WDF_DEVICE_RESOURCES_QUERY
 
typedef _In_ WDFIORESREQLIST IoResourceRequirementsList
 
typedef EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY * PFN_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY
 
typedef EVT_WDF_DEVICE_EJECT * PFN_WDF_DEVICE_EJECT
 
typedef _In_ BOOLEAN IsLocked
 
typedef EVT_WDF_DEVICE_SET_LOCK * PFN_WDF_DEVICE_SET_LOCK
 
typedef _In_ SYSTEM_POWER_STATE PowerState
 
typedef EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS * PFN_WDF_DEVICE_ENABLE_WAKE_AT_BUS
 
typedef EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS * PFN_WDF_DEVICE_DISABLE_WAKE_AT_BUS
 
typedef EVT_WDF_DEVICE_REPORTED_MISSING * PFN_WDF_DEVICE_REPORTED_MISSING
 
typedef struct _WDF_PDO_EVENT_CALLBACKS WDF_PDO_EVENT_CALLBACKS
 
typedef struct _WDF_PDO_EVENT_CALLBACKSPWDF_PDO_EVENT_CALLBACKS
 
typedef _Must_inspect_result_ _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI PWDFDEVICE_INIT(STDCALL *PFN_WDFPDOINITALLOCATE) (_In_ PWDF_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_ WDFDEVICE ParentDevice
 
typedef _In_ PWDFDEVICE_INIT DeviceInit
 
typedef _In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING HardwareID
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING CompatibleID
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING ContainerID
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING DeviceLocation
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING _In_ LCID LocaleId
 
typedef _Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ CONST GUIDDeviceClassGuid
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _Inout_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
 

Functions

WDF_EXTERN_C_START typedef _Function_class_ (EVT_WDF_DEVICE_RESOURCES_QUERY) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DEVICE_RESOURCES_QUERY(_In_ WDFDEVICE Device
 
typedef _Function_class_ (EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY(_In_ WDFDEVICE Device
 
typedef _Function_class_ (EVT_WDF_DEVICE_EJECT) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DEVICE_EJECT(_In_ WDFDEVICE Device)
 
typedef _Function_class_ (EVT_WDF_DEVICE_SET_LOCK) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DEVICE_SET_LOCK(_In_ WDFDEVICE Device
 
typedef _Function_class_ (EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) NTSTATUS STDCALL EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS(_In_ WDFDEVICE Device
 
typedef _Function_class_ (EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) VOID STDCALL EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS(_In_ WDFDEVICE Device)
 
typedef _Function_class_ (EVT_WDF_DEVICE_REPORTED_MISSING) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) VOID STDCALL EVT_WDF_DEVICE_REPORTED_MISSING(_In_ WDFDEVICE Device)
 
FORCEINLINE VOID WDF_PDO_EVENT_CALLBACKS_INIT (_Out_ PWDF_PDO_EVENT_CALLBACKS Callbacks)
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) FORCEINLINE PWDFDEVICE_INIT WdfPdoInitAllocate(_In_ WDFDEVICE ParentDevice)
 Queries information details about a security descriptor. More...
 
_Must_inspect_result_ _IRQL_requires_max_ (DISPATCH_LEVEL) FORCEINLINE NTSTATUS WdfPdoMarkMissing(_In_ WDFDEVICE Device)
 

Variables

WDF_EXTERN_C_START typedef _In_ WDFCMRESLIST Resources
 

Macro Definition Documentation

◆ WDF_EXTERN_C

#define WDF_EXTERN_C

Definition at line 38 of file wdfpdo.h.

◆ WDF_EXTERN_C_END

#define WDF_EXTERN_C_END

Definition at line 40 of file wdfpdo.h.

◆ WDF_EXTERN_C_START

#define WDF_EXTERN_C_START

Definition at line 39 of file wdfpdo.h.

Typedef Documentation

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFPDOADDEJECTIONRELATIONSPHYSICALDEVICE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals

Definition at line 212 of file wdfpdo.h.

◆ AddressDescription

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfpdo.h:555
_Must_inspect_result_ _In_ WDFDEVICE _Inout_ PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER AddressDescription
Definition: wdfpdo.h:662

Definition at line 662 of file wdfpdo.h.

◆ CompatibleID

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING CompatibleID
Definition: wdfpdo.h:368

Definition at line 368 of file wdfpdo.h.

◆ ContainerID

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING ContainerID
Definition: wdfpdo.h:399
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

Definition at line 399 of file wdfpdo.h.

◆ Device

typedef _In_ WDFDEVICE Device

Definition at line 555 of file wdfpdo.h.

◆ DeviceClassGuid

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ CONST GUID * DeviceClassGuid
Definition: wdfpdo.h:498

Definition at line 498 of file wdfpdo.h.

◆ DeviceDescription

◆ DeviceID

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceID
Definition: wdfpdo.h:275

Definition at line 275 of file wdfpdo.h.

◆ DeviceInit

Definition at line 245 of file wdfpdo.h.

◆ DeviceLocation

◆ DispatchTable

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ PWDFDEVICE_INIT _In_ PWDF_PDO_EVENT_CALLBACKS DispatchTable
Definition: wdfpdo.h:245

Definition at line 245 of file wdfpdo.h.

◆ HardwareID

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING HardwareID
Definition: wdfpdo.h:337

Definition at line 337 of file wdfpdo.h.

◆ IdentificationDescription

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfpdo.h:555
_Must_inspect_result_ _In_ WDFDEVICE _Inout_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
Definition: wdfpdo.h:631

Definition at line 631 of file wdfpdo.h.

◆ InstanceID

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING InstanceID
Definition: wdfpdo.h:306

Definition at line 306 of file wdfpdo.h.

◆ IoResourceRequirementsList

typedef _In_ WDFIORESREQLIST IoResourceRequirementsList

Definition at line 78 of file wdfpdo.h.

◆ IsLocked

Definition at line 106 of file wdfpdo.h.

◆ LocaleId

Initial value:
{
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfpdo.h:245
#define WdfFunctions
Definition: wdf.h:66
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:430
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING _In_ LCID LocaleId
Definition: wdfpdo.h:430
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING _In_ PCUNICODE_STRING DeviceLocation
Definition: wdfpdo.h:430

Definition at line 430 of file wdfpdo.h.

◆ ParentDevice

Definition at line 220 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_DISABLE_WAKE_AT_BUS

typedef EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS* PFN_WDF_DEVICE_DISABLE_WAKE_AT_BUS

Definition at line 136 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_EJECT

typedef EVT_WDF_DEVICE_EJECT* PFN_WDF_DEVICE_EJECT

Definition at line 93 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_ENABLE_WAKE_AT_BUS

typedef EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS* PFN_WDF_DEVICE_ENABLE_WAKE_AT_BUS

Definition at line 123 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_REPORTED_MISSING

typedef EVT_WDF_DEVICE_REPORTED_MISSING* PFN_WDF_DEVICE_REPORTED_MISSING

Definition at line 149 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY

typedef EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY* PFN_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY

Definition at line 80 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_RESOURCES_QUERY

typedef EVT_WDF_DEVICE_RESOURCES_QUERY* PFN_WDF_DEVICE_RESOURCES_QUERY

Definition at line 65 of file wdfpdo.h.

◆ PFN_WDF_DEVICE_SET_LOCK

typedef EVT_WDF_DEVICE_SET_LOCK* PFN_WDF_DEVICE_SET_LOCK

Definition at line 108 of file wdfpdo.h.

◆ PhysicalDevice

Initial value:
{
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfpdo.h:555
_Must_inspect_result_ _In_ WDFDEVICE _In_ PDEVICE_OBJECT PhysicalDevice
Definition: wdfpdo.h:724

Definition at line 724 of file wdfpdo.h.

◆ PowerState

Definition at line 121 of file wdfpdo.h.

◆ PWDF_PDO_EVENT_CALLBACKS

◆ WDF_PDO_EVENT_CALLBACKS

Function Documentation

◆ _Function_class_() [1/7]

WDF_EXTERN_C_START typedef _Function_class_ ( EVT_WDF_DEVICE_RESOURCES_QUERY  )

◆ _Function_class_() [2/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY  )

◆ _Function_class_() [3/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_EJECT  )

◆ _Function_class_() [4/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_SET_LOCK  )

◆ _Function_class_() [5/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_ENABLE_WAKE_AT_BUS  )

◆ _Function_class_() [6/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_DISABLE_WAKE_AT_BUS  )

◆ _Function_class_() [7/7]

typedef _Function_class_ ( EVT_WDF_DEVICE_REPORTED_MISSING  )

◆ _IRQL_requires_max_() [1/2]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 223 of file wdfpdo.h.

230 {
231  return ((PFN_WDFPDOINITALLOCATE) WdfFunctions[WdfPdoInitAllocateTableIndex])(WdfDriverGlobals, ParentDevice);
232 }
_Must_inspect_result_ _In_ WDFDEVICE ParentDevice
Definition: wdfpdo.h:220
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals

◆ _IRQL_requires_max_() [2/2]

_Must_inspect_result_ _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 558 of file wdfpdo.h.

565 {
566  return ((PFN_WDFPDOMARKMISSING) WdfFunctions[WdfPdoMarkMissingTableIndex])(WdfDriverGlobals, Device);
567 }
#define WdfFunctions
Definition: wdf.h:66
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfpdo.h:555

◆ WDF_PDO_EVENT_CALLBACKS_INIT()

FORCEINLINE VOID WDF_PDO_EVENT_CALLBACKS_INIT ( _Out_ PWDF_PDO_EVENT_CALLBACKS  Callbacks)

Definition at line 199 of file wdfpdo.h.

202 {
204  Callbacks->Size = sizeof(WDF_PDO_EVENT_CALLBACKS);
205 }
struct _WDF_PDO_EVENT_CALLBACKS WDF_PDO_EVENT_CALLBACKS
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Variable Documentation

◆ Resources