Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185/*++
Copyright (c) Microsoft Corporation
Module Name:
FxFileObjectApi.cpp
Abstract:
This modules implements the C API's for the FxFileObject.
Author:
Environment:
Both kernel and user mode
Revision History:
--*/
#include "coreprivshared.hpp"#include "fxfileobject.hpp"
extern "C" {// #include "FxFileObjectApi.tmh"}
//// Extern "C" the entire file//extern "C" {
__drv_maxIRQL(PASSIVE_LEVEL)PUNICODE_STRINGNTAPIWDFEXPORT(WdfFileObjectGetFileName)( __in PWDF_DRIVER_GLOBALS DriverGlobals, __in WDFFILEOBJECT FileObject )
/*++
Routine Description:
This returns the UNICODE_STRING for the FileName inside the WDM fileobject.
Arguments:
FileObject - WDFFILEOBJECT
Return Value:
PUNICODE_STRING (file name)
--*/
{ DDI_ENTRY();
PFX_DRIVER_GLOBALS pFxDriverGlobals; NTSTATUS status; FxFileObject* pFO;
// // Validate the FileObject object handle, and get its FxFileObject* // FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), FileObject, FX_TYPE_FILEOBJECT, (PVOID*)&pFO, &pFxDriverGlobals);
status = FxVerifierCheckIrqlLevel(pFxDriverGlobals, PASSIVE_LEVEL); if (!NT_SUCCESS(status)) { return NULL; }
if (pFO->GetWdmFileObject() != NULL) { return pFO->GetFileName(); } else { return NULL; }}
__drv_maxIRQL(DISPATCH_LEVEL)ULONGNTAPIWDFEXPORT(WdfFileObjectGetFlags)( __in PWDF_DRIVER_GLOBALS DriverGlobals, __in WDFFILEOBJECT FileObject )
/*++
Routine Description:
This returns the flags inside the WDM fileobject.
Arguments:
FileObject - WDFFILEOBJECT
Return Value:
ULONG (flags)
--*/
{ DDI_ENTRY();
FxFileObject* pFO;
// // Validate the FileObject object handle, and get its FxFileObject* // FxObjectHandleGetPtr(GetFxDriverGlobals(DriverGlobals), FileObject, FX_TYPE_FILEOBJECT, (PVOID*)&pFO);
if (pFO->GetWdmFileObject() != NULL) { return pFO->GetFlags(); } else { return 0x0; }}
__drv_maxIRQL(DISPATCH_LEVEL)WDFDEVICENTAPIWDFEXPORT(WdfFileObjectGetDevice)( __in PWDF_DRIVER_GLOBALS DriverGlobals, __in WDFFILEOBJECT FileObject )
/*++
Routine Description:
This returns the Device that the fileobject is associated with.
Arguments:
FileObject - WDFFILEOBJECT
Return Value:
WDFDEVICE
--*/
{ DDI_ENTRY();
FxFileObject* pFO;
// // Validate the FileObject object handle, and get its FxFileObject* // FxObjectHandleGetPtr(GetFxDriverGlobals(DriverGlobals), FileObject, FX_TYPE_FILEOBJECT, (PVOID*)&pFO);
return pFO->GetDevice()->GetHandle();}
} // extern "C"