- Implement EnumServicesStatusW.
[reactos.git] / reactos / drivers / usb / miniport / common / create.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS USB miniport driver (Cromwell type)
4 * FILE: drivers/usb/miniport/common/create.c
5 * PURPOSE: IRP_MJ_CREATE operations
6 *
7 * PROGRAMMERS: Hervé Poussineau (hpoussin@reactos.org)
8 */
9
10 #define NDEBUG
11 #include <debug.h>
12
13 #include "usbcommon.h"
14
15 NTSTATUS STDCALL
16 UsbMpCreate(
17 IN PDEVICE_OBJECT DeviceObject,
18 IN PIRP Irp)
19 {
20 PIO_STACK_LOCATION Stack;
21 PUSBMP_DEVICE_EXTENSION DeviceExtension;
22 NTSTATUS Status;
23
24 DPRINT("USBMP: IRP_MJ_CREATE\n");
25 Stack = IoGetCurrentIrpStackLocation(Irp);
26 DeviceExtension = (PUSBMP_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
27
28 if (Stack->Parameters.Create.Options & FILE_DIRECTORY_FILE)
29 {
30 CHECKPOINT;
31 Status = STATUS_NOT_A_DIRECTORY;
32 goto ByeBye;
33 }
34
35 InterlockedIncrement((PLONG)&DeviceExtension->DeviceOpened);
36 Status = STATUS_SUCCESS;
37
38 ByeBye:
39 Irp->IoStatus.Status = Status;
40 Irp->IoStatus.Information = 0;
41 IoCompleteRequest(Irp, IO_NO_INCREMENT);
42 return Status;
43 }