xref: /reactos/ntoskrnl/io/iomgr/adapter.c (revision c2c66aff)
1 /*
2  * PROJECT:         ReactOS Kernel
3  * LICENSE:         GPL - See COPYING in the top level directory
4  * FILE:            ntoskrnl/io/iomgr/adapter.c
5  * PURPOSE:         I/O Wrappers for HAL Adapter APIs
6  * PROGRAMMERS:     Alex Ionescu (alex.ionescu@reactos.org)
7  *                  Filip Navara (navaraf@reactos.org)
8  */
9 
10 /* INCLUDES *****************************************************************/
11 
12 #include <ntoskrnl.h>
13 #define NDEBUG
14 #include <debug.h>
15 
16 /* DATA **********************************************************************/
17 
18 POBJECT_TYPE IoAdapterObjectType;
19 POBJECT_TYPE IoDeviceHandlerObjectType;
20 ULONG IoDeviceHandlerObjectSize;
21 
22 /* FUNCTIONS *****************************************************************/
23 
24 #undef IoAllocateAdapterChannel
25 /*
26  * @implemented
27  */
28 NTSTATUS
29 NTAPI
IoAllocateAdapterChannel(IN PADAPTER_OBJECT AdapterObject,IN PDEVICE_OBJECT DeviceObject,IN ULONG NumberOfMapRegisters,IN PDRIVER_CONTROL ExecutionRoutine,IN PVOID Context)30 IoAllocateAdapterChannel(IN PADAPTER_OBJECT AdapterObject,
31                          IN PDEVICE_OBJECT DeviceObject,
32                          IN ULONG NumberOfMapRegisters,
33                          IN PDRIVER_CONTROL ExecutionRoutine,
34                          IN PVOID Context)
35 {
36     PWAIT_CONTEXT_BLOCK Wcb = &DeviceObject->Queue.Wcb;
37 
38     /* Initialize the WCB */
39     Wcb->DeviceObject = DeviceObject;
40     Wcb->DeviceContext = Context;
41     Wcb->CurrentIrp = DeviceObject->CurrentIrp;
42 
43     /* Call HAL */
44     return HalAllocateAdapterChannel(AdapterObject,
45                                      Wcb,
46                                      NumberOfMapRegisters,
47                                      ExecutionRoutine);
48 }
49 
50 /* EOF */
51