if (Status)
{
/* store bytes returned */
- *BytesReturned = IoStatusBlock.Information;
+ *BytesReturned = (ULONG)IoStatusBlock.Information;
/* return status */
return IoStatusBlock.Status;
}
Status = IoStatusBlock.Status;
}
- *BytesReturned = IoStatusBlock.Information;
+ *BytesReturned = (ULONG)IoStatusBlock.Information;
return Status;
}
return;
}
- /* FIXME
- * delete object / device header
+ /* FIXME
+ * delete object / device header
* remove dead pin / filter instance
*/
UNIMPLEMENTED
Status = IoCallDriver(DeviceObject, Irp);
/* is the request still pending */
- if (Status == STATUS_PENDING)
+ if (Status == STATUS_PENDING)
{
/* have a nap */
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
/* get the basic header */
BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER));
- ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
+ ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin);
return (PVOID)BasicHeader->Next.Pin;
PKSPROPERTY_ITEM PropertyItem, CurrentPropertyItem;
NTSTATUS Status;
- // max properties
+ // max properties
PropertyCount = PropertySetA->PropertiesCount + PropertySetB->PropertiesCount;
// allocate items
PKSBASIC_HEADER BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER));
/* sanity check */
- ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
+ ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin);
if (BasicHeader->ClientAggregate)
KspEnableEvent(
IN PIRP Irp,
IN ULONG EventSetsCount,
- IN PKSEVENT_SET EventSet,
+ IN const KSEVENT_SET* EventSet,
IN OUT PLIST_ENTRY EventsList OPTIONAL,
IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL,
IN PVOID EventsLock OPTIONAL,
KSEVENT Event;
PKSEVENT_ITEM EventItem, FoundEventItem;
PKSEVENTDATA EventData;
- PKSEVENT_SET FoundEventSet;
+ const KSEVENT_SET* FoundEventSet;
PKSEVENT_ENTRY EventEntry;
ULONG Index, SubIndex, Size;
PVOID Object;
/* invalid type requested */
return STATUS_INVALID_PARAMETER;
}
- }
+ }
/* calculate request size */
/*
@implemented
*/
+_IRQL_requires_max_(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsEnableEventWithAllocator(
- IN PIRP Irp,
- IN ULONG EventSetsCount,
- IN PKSEVENT_SET EventSet,
- IN OUT PLIST_ENTRY EventsList OPTIONAL,
- IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL,
- IN PVOID EventsLock OPTIONAL,
- IN PFNKSALLOCATOR Allocator OPTIONAL,
- IN ULONG EventItemSize OPTIONAL)
+ _In_ PIRP Irp,
+ _In_ ULONG EventSetsCount,
+ _In_reads_(EventSetsCount) const KSEVENT_SET* EventSet,
+ _Inout_opt_ PLIST_ENTRY EventsList,
+ _In_opt_ KSEVENTS_LOCKTYPE EventsFlags,
+ _In_opt_ PVOID EventsLock,
+ _In_opt_ PFNKSALLOCATOR Allocator,
+ _In_opt_ ULONG EventItemSize)
{
return KspEnableEvent(Irp, EventSetsCount, EventSet, EventsList, EventsFlags, EventsLock, Allocator, EventItemSize);
}
KspEnableEvent(
IN PIRP Irp,
IN ULONG EventSetsCount,
- IN PKSEVENT_SET EventSet,
+ IN const KSEVENT_SET* EventSet,
IN OUT PLIST_ENTRY EventsList OPTIONAL,
IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL,
IN PVOID EventsLock OPTIONAL,
if (Allocator)
{
/* allocate the requested amount */
- Status = Allocator(Irp, Irp->IoStatus.Information, FALSE);
+ Status = Allocator(Irp, (ULONG)Irp->IoStatus.Information, FALSE);
/* check if the block was allocated */
if (!NT_SUCCESS(Status))
/*
@implemented
*/
+_IRQL_requires_max_(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsMethodHandler(
- IN PIRP Irp,
- IN ULONG MethodSetsCount,
- IN PKSMETHOD_SET MethodSet)
+ _In_ PIRP Irp,
+ _In_ ULONG MethodSetsCount,
+ _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet)
{
return KspMethodHandlerWithAllocator(Irp, MethodSetsCount, MethodSet, NULL, 0);
}
/*
@implemented
*/
+_IRQL_requires_max_(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsMethodHandlerWithAllocator(
- IN PIRP Irp,
- IN ULONG MethodSetsCount,
- IN PKSMETHOD_SET MethodSet,
- IN PFNKSALLOCATOR Allocator OPTIONAL,
- IN ULONG MethodItemSize OPTIONAL)
+ _In_ PIRP Irp,
+ _In_ ULONG MethodSetsCount,
+ _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet,
+ _In_opt_ PFNKSALLOCATOR Allocator,
+ _In_opt_ ULONG MethodItemSize)
{
return KspMethodHandlerWithAllocator(Irp, MethodSetsCount, MethodSet, Allocator, MethodItemSize);
}
OUT PVOID * Result)
{
PIO_STACK_LOCATION IoStack;
- ULONG ObjectLength, ParametersLength;
+ SIZE_T ObjectLength, ParametersLength;
PVOID Buffer;
/* get current irp stack */
/* store result */
*Result = Buffer;
- *Size = ParametersLength;
+ *Size = (ULONG)ParametersLength;
return STATUS_SUCCESS;
}
PKSBASIC_HEADER BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER));
/* sanity check */
- ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
+ ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory ||
BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin);
/* return objects outer unknown */
if (Allocator)
{
/* allocate the requested amount */
- Status = Allocator(Irp, Irp->IoStatus.Information, FALSE);
+ Status = Allocator(Irp, (ULONG)Irp->IoStatus.Information, FALSE);
/* check if the block was allocated */
if (!NT_SUCCESS(Status))
/*
@implemented
*/
+_IRQL_requires_max_(PASSIVE_LEVEL)
KSDDKAPI
NTSTATUS
NTAPI
KsPropertyHandlerWithAllocator(
- IN PIRP Irp,
- IN ULONG PropertySetsCount,
- IN PKSPROPERTY_SET PropertySet,
- IN PFNKSALLOCATOR Allocator OPTIONAL,
- IN ULONG PropertyItemSize OPTIONAL)
+ _In_ PIRP Irp,
+ _In_ ULONG PropertySetsCount,
+ _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet,
+ _In_opt_ PFNKSALLOCATOR Allocator,
+ _In_opt_ ULONG PropertyItemSize)
{
return KspPropertyHandler(Irp, PropertySetsCount, PropertySet, Allocator, PropertyItemSize);
}
IN LPWSTR ReferenceString)
{
LPWSTR DeviceName;
- ULONG Length;
+ SIZE_T Length;
PLIST_ENTRY Entry;
PBUS_DEVICE_ENTRY DeviceEntry = NULL; /* GCC warning */
BOOLEAN ItemExists = FALSE;
IN OUT PWCHAR *String)
{
LPWSTR Name;
- ULONG Length;
+ SIZE_T Length;
PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension = (PBUS_ENUM_DEVICE_EXTENSION)Context;
/* sanity checks */
PIRP Irp,
PBUS_DEVICE_ENTRY DeviceEntry)
{
- ULONG Length;
+ SIZE_T Length;
LPWSTR Buffer;
PIO_STACK_LOCATION IoStack;
PBUS_DEVICE_ENTRY DeviceEntry;
PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension;
LPWSTR Name;
- ULONG Length;
+ SIZE_T Length;
/* get current irp stack location */
IoStack = IoGetCurrentIrpStackLocation(Irp);
IN PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension,
IN PSWENUM_INSTALL_INTERFACE InstallInterface)
{
- ULONG Length, Index;
+ SIZE_T Length, Index;
UNICODE_STRING DeviceString, InterfaceString, ReferenceString;
HANDLE hKey, hDeviceKey, hInterfaceKey, hReferenceKey;
NTSTATUS Status;
PDEV_EXTENSION DeviceExtension;
PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension;
PIO_STACK_LOCATION IoStack;
- ULONG Length;
+ SIZE_T Length;
NTSTATUS Status;
LPWSTR Buffer;
IN REFGUID InterfaceGuid OPTIONAL,
IN PWCHAR ServiceRelativePath OPTIONAL)
{
- ULONG Length;
+ SIZE_T Length;
NTSTATUS Status = STATUS_SUCCESS;
UNICODE_STRING ServiceKeyPath = RTL_CONSTANT_STRING(L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\");
PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension;
KsMethodHandler(
_In_ PIRP Irp,
_In_ ULONG MethodSetsCount,
- _In_reads_(MethodSetsCount) const PKSMETHOD_SET MethodSet);
+ _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet);
_IRQL_requires_max_(PASSIVE_LEVEL)
KSDDKAPI
KsMethodHandlerWithAllocator(
_In_ PIRP Irp,
_In_ ULONG MethodSetsCount,
- _In_reads_(MethodSetsCount) const PKSMETHOD_SET MethodSet,
+ _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet,
_In_opt_ PFNKSALLOCATOR Allocator,
_In_opt_ ULONG MethodItemSize);
KsPropertyHandlerWithAllocator(
_In_ PIRP Irp,
_In_ ULONG PropertySetsCount,
- _In_reads_(PropertySetsCount) const PKSPROPERTY_SET PropertySet,
+ _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet,
_In_opt_ PFNKSALLOCATOR Allocator,
_In_opt_ ULONG PropertyItemSize);
KsEnableEventWithAllocator(
_In_ PIRP Irp,
_In_ ULONG EventSetsCount,
- _In_reads_(EventSetsCount) const PKSEVENT_SET EventSet,
+ _In_reads_(EventSetsCount) const KSEVENT_SET* EventSet,
_Inout_opt_ PLIST_ENTRY EventsList,
_In_opt_ KSEVENTS_LOCKTYPE EventsFlags,
_In_opt_ PVOID EventsLock,
DECLARE_INTERFACE_(IKsControl,IUnknown)
{
- STDMETHOD_(NTSTATUS, QueryInterface)( THIS_
+ STDMETHOD_(NTSTATUS, QueryInterface)( THIS_
REFIID InterfaceId,
PVOID* Interface)PURE;