15 IKsDevice_fnQueryInterface(
20 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
22 DPRINT1("IKsDevice_fnQueryInterface %p\n", This
);
23 return STATUS_NOT_IMPLEMENTED
;
31 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
33 return InterlockedIncrement(&This
->ref
);
41 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
43 InterlockedDecrement(&This
->ref
);
47 ExFreePoolWithTag(This
, TAG_KSDEVICE
);
58 IKsDevice_fnGetStruct(
61 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
63 return &This
->KsDevice
;
68 IKsDevice_fnInitializeObjectBag(
70 IN
struct KSIOBJECTBAG
*Bag
,
73 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
75 DPRINT1("IKsDevice_fnInitializeObjectBag %p\n", This
);
76 return STATUS_NOT_IMPLEMENTED
;
81 IKsDevice_fnAcquireDevice(
84 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
86 DPRINT1("IKsDevice_fnAcquireDevice %p\n", This
);
87 return STATUS_NOT_IMPLEMENTED
;
92 IKsDevice_fnReleaseDevice(
95 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
97 DPRINT1("IKsDevice_fnReleaseDevice %p\n", This
);
98 return STATUS_NOT_IMPLEMENTED
;
103 IKsDevice_fnGetAdapterObject(
104 IN IKsDevice
* iface
,
105 IN PADAPTER_OBJECT Object
,
109 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
111 DPRINT1("IKsDevice_fnGetAdapterObject %p\n", This
);
112 return STATUS_NOT_IMPLEMENTED
;
118 IKsDevice_fnAddPowerEntry(
119 IN IKsDevice
* iface
,
120 IN
struct KSPOWER_ENTRY
* Entry
,
121 IN IKsPowerNotify
* Notify
)
123 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
125 DPRINT1("IKsDevice_fnAddPowerEntry %p\n", This
);
126 return STATUS_NOT_IMPLEMENTED
;
131 IKsDevice_fnRemovePowerEntry(
132 IN IKsDevice
* iface
,
133 IN
struct KSPOWER_ENTRY
* Entry
)
135 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
137 DPRINT1("IKsDevice_fnRemovePowerEntry %p\n", This
);
138 return STATUS_NOT_IMPLEMENTED
;
144 IKsDevice_fnPinStateChange(
145 IN IKsDevice
* iface
,
151 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
153 DPRINT1("IKsDevice_fnPinStateChange %p\n", This
);
154 return STATUS_NOT_IMPLEMENTED
;
160 IKsDevice_fnArbitrateAdapterChannel(
161 IN IKsDevice
* iface
,
162 IN ULONG ControlCode
,
163 IN IO_ALLOCATION_ACTION Action
,
166 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
168 DPRINT1("IKsDevice_fnArbitrateAdapterChannel %p\n", This
);
169 return STATUS_NOT_IMPLEMENTED
;
175 IKsDevice_fnCheckIoCapability(
176 IN IKsDevice
* iface
,
179 IKsDeviceImpl
* This
= (IKsDeviceImpl
*)iface
;
181 DPRINT1("IKsDevice_fnCheckIoCapability %p\n", This
);
182 return STATUS_NOT_IMPLEMENTED
;
185 static IKsDeviceVtbl vt_IKsDevice
=
187 IKsDevice_fnQueryInterface
,
190 IKsDevice_fnGetStruct
,
191 IKsDevice_fnInitializeObjectBag
,
192 IKsDevice_fnAcquireDevice
,
193 IKsDevice_fnReleaseDevice
,
194 IKsDevice_fnGetAdapterObject
,
195 IKsDevice_fnAddPowerEntry
,
196 IKsDevice_fnRemovePowerEntry
,
197 IKsDevice_fnPinStateChange
,
198 IKsDevice_fnArbitrateAdapterChannel
,
199 IKsDevice_fnCheckIoCapability
206 NewIKsDevice(IKsDevice
** OutDevice
)
208 IKsDeviceImpl
* This
;
210 This
= ExAllocatePoolWithTag(NonPagedPool
, sizeof(IKsDeviceImpl
), TAG_KSDEVICE
);
212 return STATUS_INSUFFICIENT_RESOURCES
;
215 This
->lpVtbl
= &vt_IKsDevice
;
217 *OutDevice
= (IKsDevice
*)This
;
218 return STATUS_SUCCESS
;