Expand Minimize

KsPropertyHandler function

Drivers call KsPropertyHandler function for IRP handling.

Syntax


NTSTATUS KsPropertyHandler(
  _In_  PIRP Irp,
  _In_  ULONG PropertySetsCount,
  _In_  const KSPROPERTY_SET *PropertySet
);

Parameters

Irp [in]

Specifies the IRP with the property request being handled.

PropertySetsCount [in]

Specifies the number of property sets being passed.

PropertySet [in]

Points to an array of KSPROPERTY_SET structures. The driver should provide one structure for each property set it wants KsPropertyHandler to handle.

Return value

The KsPropertyHandler function returns STATUS_SUCCESS if successful, or an error specific to the property being handled if unsuccessful. The function sets the IRP->IO_STATUS_BLOCK.Information member, either through setting it to zero because of an internal error, or through a property handler setting it. The function does not set the lrp->IoStatus.Status member nor does it complete the IRP.

Remarks

KsPropertyHandler responds to all property identifiers defined by the sets, and can only be called at PASSIVE_LEVEL.

Each KSPROPERTY_SET entry contains a pointer to an array of KSPROPERTY_ITEM structures in its PropertyItem member. For driver-specific processing, KsPropertyHandler hands off each request to one of the driver-supplied callbacks within PropertyItem. KsPropertyHandler takes care of any IRP processing required.

KsPropertyHandler does not use the FastIoTable member of its KSPROPERTY_SET structure. If the driver needs to support Fast I/O handling of requests, the same KSPROPERTY_SET structure should be passed to the KsFastPropertyHandler routine.

The owner of the property sets can perform prefiltering or postfiltering of property handling. Basic property structure access exceptions are handled by the KsPropertyHandler function, though cleanup for specific exceptions must be covered by the property handler.

KsPropertyHandler places a pointer to the relevant KSPROPERTY_SET structure in the Irp->Tail.Overlay.DriverContext parameter in the IRP. The minidriver can use the KSPROPERTY_SET_IRP_STORAGE macro, defined in ks.h, to access this pointer.

Requirements

Header

Ks.h (include Ks.h)

Library

Ks.lib

See also

KsFastPropertyHandler
KsPropertyHandlerWithAllocator

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft